<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Interactive BOM for KiCAD</title>
  <style type="text/css">
:root {
  --pcb-edge-color: black;
  --pad-color: #878787;
  --pad-hole-color: #CCCCCC;
  --pad-color-highlight: #D04040;
  --pad-color-highlight-both: #D0D040;
  --pad-color-highlight-marked: #44a344;
  --pin1-outline-color: #ffb629;
  --pin1-outline-color-highlight: #ffb629;
  --pin1-outline-color-highlight-both: #fcbb39;
  --pin1-outline-color-highlight-marked: #fdbe41;
  --silkscreen-edge-color: #aa4;
  --silkscreen-polygon-color: #4aa;
  --silkscreen-text-color: #4aa;
  --fabrication-edge-color: #907651;
  --fabrication-polygon-color: #907651;
  --fabrication-text-color: #a27c24;
  --track-color: #def5f1;
  --track-color-highlight: #D04040;
  --zone-color: #def5f1;
  --zone-color-highlight: #d0404080;
}

html,
body {
  margin: 0px;
  height: 100%;
  font-family: Verdana, sans-serif;
}

.dark.topmostdiv {
  --pcb-edge-color: #eee;
  --pad-color: #808080;
  --pin1-outline-color: #ffa800;
  --pin1-outline-color-highlight: #ccff00;
  --track-color: #42524f;
  --zone-color: #42524f;
  background-color: #252c30;
  color: #eee;
}

button {
  background-color: #eee;
  border: 1px solid #888;
  color: black;
  height: 44px;
  width: 44px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 14px;
  font-weight: bolder;
}

.dark button {
  /* This will be inverted */
  background-color: #c3b7b5;
}

button.depressed {
  background-color: #0a0;
  color: white;
}

.dark button.depressed {
  /* This will be inverted */
  background-color: #b3b;
}

button:focus {
  outline: 0;
}

button#tb-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}

button#lr-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}

button#bom-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-grouped-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-ungrouped-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-netlist-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
}

button#copy {
  background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
  background-position: 6px 6px;
  background-repeat: no-repeat;
  background-size: 26px 26px;
  border-radius: 6px;
  height: 40px;
  width: 40px;
  margin: 10px 5px;
}

button#copy:active {
  box-shadow: inset 0px 0px 5px #6c6c6c;
}

textarea.clipboard-temp {
  position: fixed;
  top: 0;
  left: 0;
  width: 2em;
  height: 2em;
  padding: 0;
  border: None;
  outline: None;
  box-shadow: None;
  background: transparent;
}

.left-most-button {
  border-right: 0;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.middle-button {
  border-right: 0;
}

.right-most-button {
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.button-container {
  font-size: 0;
  margin: 10px 10px 10px 0px;
}

.dark .button-container {
  filter: invert(1);
}

.button-container button {
  background-size: 32px 32px;
  background-position: 5px 5px;
  background-repeat: no-repeat;
}

@media print {
  .hideonprint {
    display: none;
  }
}

canvas {
  cursor: crosshair;
}

canvas:active {
  cursor: grabbing;
}

.fileinfo {
  width: 100%;
  max-width: 1000px;
  border: none;
  padding: 5px;
}

.fileinfo .title {
  font-size: 20pt;
  font-weight: bold;
}

.fileinfo td {
  overflow: hidden;
  white-space: nowrap;
  max-width: 1px;
  width: 50%;
  text-overflow: ellipsis;
}

.bom {
  border-collapse: collapse;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 10pt;
  table-layout: fixed;
  width: 100%;
  margin-top: 1px;
  position: relative;
}

.bom th,
.bom td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

.dark .bom th,
.dark .bom td {
  border: 1px solid #777;
}

.bom th {
  background-color: #CCCCCC;
  background-clip: padding-box;
}

.dark .bom th {
  background-color: #3b4749;
}

.bom tr.highlighted:nth-child(n) {
  background-color: #cfc;
}

.dark .bom tr.highlighted:nth-child(n) {
  background-color: #226022;
}

.bom tr:nth-child(even) {
  background-color: #f2f2f2;
}

.dark .bom tr:nth-child(even) {
  background-color: #313b40;
}

.bom tr.checked {
  color: #1cb53d;
}

.dark .bom tr.checked {
  color: #2cce54;
}

.bom tr {
  transition: background-color 0.2s;
}

.bom .numCol {
  width: 30px;
}

.bom .value {
  width: 15%;
}

.bom .quantity {
  width: 65px;
}

.bom th .sortmark {
  position: absolute;
  right: 1px;
  top: 1px;
  margin-top: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent #221 transparent;
  transform-origin: 50% 85%;
  transition: opacity 0.2s, transform 0.4s;
}

.dark .bom th .sortmark {
  filter: invert(1);
}

.bom th .sortmark.none {
  opacity: 0;
}

.bom th .sortmark.desc {
  transform: rotate(180deg);
}

.bom th:hover .sortmark.none {
  opacity: 0.5;
}

.bom .bom-checkbox {
  width: 30px;
  position: relative;
  user-select: none;
  -moz-user-select: none;
}

.bom .bom-checkbox:before {
  content: "";
  position: absolute;
  border-width: 15px;
  border-style: solid;
  border-color: #51829f transparent transparent transparent;
  visibility: hidden;
  top: -15px;
}

.bom .bom-checkbox:after {
  content: "Double click to set/unset all";
  position: absolute;
  color: white;
  top: -35px;
  left: -26px;
  background: #51829f;
  padding: 5px 15px;
  border-radius: 8px;
  white-space: nowrap;
  visibility: hidden;
}

.bom .bom-checkbox:hover:before,
.bom .bom-checkbox:hover:after {
  visibility: visible;
  transition: visibility 0.2s linear 1s;
}

.split {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  overflow-y: auto;
  overflow-x: hidden;
  background-color: inherit;
}

.split.split-horizontal,
.gutter.gutter-horizontal {
  height: 100%;
  float: left;
}

.gutter {
  background-color: #ddd;
  background-repeat: no-repeat;
  background-position: 50%;
  transition: background-color 0.3s;
}

.dark .gutter {
  background-color: #777;
}

.gutter.gutter-horizontal {
  background-image: url('');
  cursor: ew-resize;
  width: 5px;
}

.gutter.gutter-vertical {
  background-image: url('');
  cursor: ns-resize;
  height: 5px;
}

.searchbox {
  float: left;
  height: 40px;
  margin: 10px 5px;
  padding: 12px 32px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 18px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 6px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  background-image: url('');
  background-position: 10px 10px;
  background-repeat: no-repeat;
}

.dark .searchbox {
  background-color: #111;
  color: #eee;
}

.searchbox::placeholder {
  color: #ccc;
}

.dark .searchbox::placeholder {
  color: #666;
}

.filter {
  width: calc(60% - 64px);
}

.reflookup {
  width: calc(40% - 10px);
}

input[type=text]:focus {
  background-color: white;
  border: 1px solid #333;
}

.dark input[type=text]:focus {
  background-color: #333;
  border: 1px solid #ccc;
}

mark.highlight {
  background-color: #5050ff;
  color: #fff;
  padding: 2px;
  border-radius: 6px;
}

.dark mark.highlight {
  background-color: #76a6da;
  color: #111;
}

.menubtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
}

.statsbtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h28v24H4V6zm0 8h28v8H4m9-16v24h10V5.8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

.iobtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3 33v-7l6.8-7h16.5l6.7 7v7H3zM3.2 26H33M21 9l5-5.9 5 6h-2.5V15h-5V9H21zm-4.9 0l-5 6-5-6h2.5V3h5v6h2.5z'/%3E%3Cpath fill='none' stroke='%23000' d='M6.1 29.5H10'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

.visbtn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' stroke='%23333' d='M2.5 4.5h5v15h-5zM9.5 4.5h5v15h-5zM16.5 4.5h5v15h-5z'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  padding: 15px;
}

#vismenu-content {
  left: 0px;
  font-family: Verdana, sans-serif;
}

.dark .statsbtn,
.dark .savebtn,
.dark .menubtn,
.dark .iobtn,
.dark .visbtn {
  filter: invert(1);
}

.flexbox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.savebtn {
  background-color: #d6d6d6;
  width: auto;
  height: 30px;
  flex-grow: 1;
  margin: 5px;
  border-radius: 4px;
}

.savebtn:active {
  background-color: #0a0;
  color: white;
}

.dark .savebtn:active {
  /* This will be inverted */
  background-color: #b3b;
}

.stats {
  border-collapse: collapse;
  font-size: 12pt;
  table-layout: fixed;
  width: 100%;
  min-width: 450px;
}

.dark .stats td {
  border: 1px solid #bbb;
}

.stats td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

#checkbox-stats div {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

#checkbox-stats .bar {
  background-color: rgba(28, 251, 0, 0.6);
}

.menu {
  position: relative;
  display: inline-block;
  margin: 10px 10px 10px 0px;
}

.menu-content {
  font-size: 12pt !important;
  text-align: left !important;
  font-weight: normal !important;
  display: none;
  position: absolute;
  background-color: white;
  right: 0;
  min-width: 300px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 100;
  padding: 8px;
}

.dark .menu-content {
  background-color: #111;
}

.menu:hover .menu-content {
  display: block;
}

.menu:hover .menubtn,
.menu:hover .iobtn,
.menu:hover .statsbtn {
  background-color: #eee;
}

.menu-label {
  display: inline-block;
  padding: 8px;
  border: 1px solid #ccc;
  border-top: 0;
  width: calc(100% - 18px);
}

.menu-label-top {
  border-top: 1px solid #ccc;
}

.menu-textbox {
  float: left;
  height: 24px;
  margin: 10px 5px;
  padding: 5px 5px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 14px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 4px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  width: calc(100% - 10px);
}

.menu-textbox.invalid,
.dark .menu-textbox.invalid {
  color: red;
}

.dark .menu-textbox {
  background-color: #222;
  color: #eee;
}

.radio-container {
  margin: 4px;
}

.topmostdiv {
  width: 100%;
  height: 100%;
  background-color: white;
  transition: background-color 0.3s;
}

#top {
  height: 78px;
  border-bottom: 2px solid black;
}

.dark #top {
  border-bottom: 2px solid #ccc;
}

#dbg {
  display: block;
}

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #aaa;
}

::-webkit-scrollbar-thumb {
  background: #666;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

.slider {
  -webkit-appearance: none;
  width: 100%;
  margin: 3px 0;
  padding: 0;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
  border-radius: 3px;
}

.slider:hover {
  opacity: 1;
}

.slider:focus {
  outline: none;
}

.slider::-webkit-slider-runnable-track {
  -webkit-appearance: none;
  width: 100%;
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
  border: none;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin-top: -4px;
}

.dark .slider::-webkit-slider-thumb {
  background: #3d3;
}

.slider::-moz-range-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
}

.slider::-moz-range-track {
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
}

.dark .slider::-moz-range-thumb {
  background: #3d3;
}

.slider::-ms-track {
  width: 100%;
  height: 8px;
  border-width: 3px 0;
  background: transparent;
  border-color: transparent;
  color: transparent;
  transition: opacity .2s;
}

.slider::-ms-fill-lower {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-fill-upper {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin: 0;
}

.shameless-plug {
  font-size: 0.8em;
  text-align: center;
  display: block;
}

a {
  color: #0278a4;
}

.dark a {
  color: #00b9fd;
}

#frontcanvas,
#backcanvas {
  touch-action: none;
}

.placeholder {
  border: 1px dashed #9f9fda !important;
  background-color: #edf2f7 !important;
}

.dragging {
  z-index: 999;
}

.dark .dragging>table>tbody>tr {
  background-color: #252c30;
}

.dark .placeholder {
  filter: invert(1);
}

.column-spacer {
  top: 0;
  left: 0;
  width: calc(100% - 4px);
  position: absolute;
  cursor: pointer;
  user-select: none;
  height: 100%;
}

.column-width-handle {
  top: 0;
  right: 0;
  width: 4px;
  position: absolute;
  cursor: col-resize;
  user-select: none;
  height: 100%;
}

.column-width-handle:hover {
  background-color: #4f99bd;
}

.help-link {
  border: 1px solid #0278a4;
  padding-inline: 0.3rem;
  border-radius: 3px;
  cursor: pointer;
}

.dark .help-link {
  border: 1px solid #00b9fd;
}

.bom-color {
  width: 20%;
}

.color-column input {
  width: 1.6rem;
  height: 1rem;
  border: 1px solid black;
  cursor: pointer;
  padding: 0;
}

/* removes default styling from input color element */
::-webkit-color-swatch {
  border: none;
}

::-webkit-color-swatch-wrapper {
  padding: 0;
}

::-moz-color-swatch,
::-moz-focus-inner {
  border: none;
}

::-moz-focus-inner {
  padding: 0;
}

  </style>
  <script type="text/javascript" >
///////////////////////////////////////////////
/*
  Split.js - v1.3.5
  MIT License
  https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});

///////////////////////////////////////////////

///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////

///////////////////////////////////////////////
/*!
 * PEP v0.4.3 | https://github.com/jquery/PEP
 * Copyright jQuery Foundation and other contributors | http://jquery.org/license
 */
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
for(var b=a;b.parentNode;)b=b.parentNode;
return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
//
this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
var b=x(a,this.findElements,this);
return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
(0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
b=!1;else if("XY"===c)
b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
vacuumTouches:function(a){var b=a.touches;
if(R.size>=b.length){var c=[];R.forEach(function(a,d){
if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
if(this.isPrimaryTouch(c)){
var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});

///////////////////////////////////////////////

///////////////////////////////////////////////
var config = {"dark_mode": false, "show_pads": true, "show_fabrication": false, "show_silkscreen": true, "highlight_pin1": "none", "redraw_on_drag": true, "board_rotation": 0, "checkboxes": "Sourced,Placed", "bom_view": "left-right", "layer_view": "FB", "offset_back_rotation": false, "kicad_text_formatting": true, "fields": ["Value", "Footprint"]}
///////////////////////////////////////////////

///////////////////////////////////////////////
var pcbdata = JSON.parse(LZString.decompressFromBase64("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"))
///////////////////////////////////////////////

///////////////////////////////////////////////
/* Utility functions */

var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
  pcbdata.metadata.revision + '__#';
var storage;

function initStorage(key) {
  try {
    window.localStorage.getItem("blank");
    storage = window.localStorage;
  } catch (e) {
    // localStorage not available
  }
  if (!storage) {
    try {
      window.sessionStorage.getItem("blank");
      storage = window.sessionStorage;
    } catch (e) {
      // sessionStorage also not available
    }
  }
}

function readStorage(key) {
  if (storage) {
    return storage.getItem(storagePrefix + key);
  } else {
    return null;
  }
}

function writeStorage(key, value) {
  if (storage) {
    storage.setItem(storagePrefix + key, value);
  }
}

function fancyDblClickHandler(el, onsingle, ondouble) {
  return function () {
    if (el.getAttribute("data-dblclick") == null) {
      el.setAttribute("data-dblclick", 1);
      setTimeout(function () {
        if (el.getAttribute("data-dblclick") == 1) {
          onsingle();
        }
        el.removeAttribute("data-dblclick");
      }, 200);
    } else {
      el.removeAttribute("data-dblclick");
      ondouble();
    }
  }
}

function smoothScrollToRow(rowid) {
  document.getElementById(rowid).scrollIntoView({
    behavior: "smooth",
    block: "center",
    inline: "nearest"
  });
}

function focusInputField(input) {
  input.scrollIntoView(false);
  input.focus();
  input.select();
}

function saveBomTable(output) {
  var text = '';
  for (var node of bomhead.childNodes[0].childNodes) {
    if (node.firstChild) {
      text += (output == 'csv' ? `"${node.firstChild.nodeValue}"` : node.firstChild.nodeValue);
    }
    if (node != bomhead.childNodes[0].lastChild) {
      text += (output == 'csv' ? ',' : '\t');
    }
  }
  text += '\n';
  for (var row of bombody.childNodes) {
    for (var cell of row.childNodes) {
      let val = '';
      for (var node of cell.childNodes) {
        if (node.nodeName == "INPUT") {
          if (node.checked) {
            val += '✓';
          }
        } else if ((node.nodeName == "MARK") || (node.nodeName == "A")) {
          val += node.firstChild.nodeValue;
        } else {
          val += node.nodeValue;
        }
      }
      if (output == 'csv') {
        val = val.replace(/\"/g, '\"\"'); // pair of double-quote characters
        if (isNumeric(val)) {
          val = +val;                     // use number
        } else {
          val = `"${val}"`;               // enclosed within double-quote
        }
      }
      text += val;
      if (cell != row.lastChild) {
        text += (output == 'csv' ? ',' : '\t');
      }
    }
    text += '\n';
  }

  if (output != 'clipboard') {
    // To file: csv or txt
    var blob = new Blob([text], {
      type: `text/${output}`
    });
    saveFile(`${pcbdata.metadata.title}.${output}`, blob);
  } else {
    // To clipboard
    var textArea = document.createElement("textarea");
    textArea.classList.add('clipboard-temp');
    textArea.value = text;

    document.body.appendChild(textArea);
    textArea.focus();
    textArea.select();

    try {
      if (document.execCommand('copy')) {
        console.log('Bom copied to clipboard.');
      }
    } catch (err) {
      console.log('Can not copy to clipboard.');
    }

    document.body.removeChild(textArea);
  }
}

function isNumeric(str) {
  /* https://stackoverflow.com/a/175787 */
  return (typeof str != "string" ? false : !isNaN(str) && !isNaN(parseFloat(str)));
}

function removeGutterNode(node) {
  for (var i = 0; i < node.childNodes.length; i++) {
    if (node.childNodes[i].classList &&
      node.childNodes[i].classList.contains("gutter")) {
      node.removeChild(node.childNodes[i]);
      break;
    }
  }
}

function cleanGutters() {
  removeGutterNode(document.getElementById("bot"));
  removeGutterNode(document.getElementById("canvasdiv"));
}

var units = {
  prefixes: {
    giga: ["G", "g", "giga", "Giga", "GIGA"],
    mega: ["M", "mega", "Mega", "MEGA"],
    kilo: ["K", "k", "kilo", "Kilo", "KILO"],
    milli: ["m", "milli", "Milli", "MILLI"],
    micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
    nano: ["N", "n", "nano", "Nano", "NANO"],
    pico: ["P", "p", "pico", "Pico", "PICO"],
  },
  unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
  unitsLong: [
    "OHM", "Ohm", "ohm", "ohms",
    "FARAD", "Farad", "farad",
    "HENRY", "Henry", "henry"
  ],
  getMultiplier: function (s) {
    if (this.prefixes.giga.includes(s)) return 1e9;
    if (this.prefixes.mega.includes(s)) return 1e6;
    if (this.prefixes.kilo.includes(s)) return 1e3;
    if (this.prefixes.milli.includes(s)) return 1e-3;
    if (this.prefixes.micro.includes(s)) return 1e-6;
    if (this.prefixes.nano.includes(s)) return 1e-9;
    if (this.prefixes.pico.includes(s)) return 1e-12;
    return 1;
  },
  valueRegex: null,
}

function initUtils() {
  var allPrefixes = units.prefixes.giga
    .concat(units.prefixes.mega)
    .concat(units.prefixes.kilo)
    .concat(units.prefixes.milli)
    .concat(units.prefixes.micro)
    .concat(units.prefixes.nano)
    .concat(units.prefixes.pico);
  var allUnits = units.unitsShort.concat(units.unitsLong);
  units.valueRegex = new RegExp("^([0-9\.]+)" +
    "\\s*(" + allPrefixes.join("|") + ")?" +
    "(" + allUnits.join("|") + ")?" +
    "(\\b.*)?$", "");
  units.valueAltRegex = new RegExp("^([0-9]*)" +
    "(" + units.unitsShort.join("|") + ")?" +
    "([GgMmKkUuNnPp])?" +
    "([0-9]*)" +
    "(\\b.*)?$", "");
  if (config.fields.includes("Value")) {
    var index = config.fields.indexOf("Value");
    pcbdata.bom["parsedValues"] = {};
    for (var id in pcbdata.bom.fields) {
      pcbdata.bom.parsedValues[id] = parseValue(pcbdata.bom.fields[id][index])
    }
  }
}

function parseValue(val, ref) {
  var inferUnit = (unit, ref) => {
    if (unit) {
      unit = unit.toLowerCase();
      if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
        unit = 'r';
      }
      unit = unit[0];
    } else {
      ref = /^([a-z]+)\d+$/i.exec(ref);
      if (ref) {
        ref = ref[1].toLowerCase();
        if (ref == "c") unit = 'f';
        else if (ref == "l") unit = 'h';
        else if (ref == "r" || ref == "rv") unit = 'r';
        else unit = null;
      }
    }
    return unit;
  };
  val = val.replace(/,/g, "");
  var match = units.valueRegex.exec(val);
  var unit;
  if (match) {
    val = parseFloat(match[1]);
    if (match[2]) {
      val = val * units.getMultiplier(match[2]);
    }
    unit = inferUnit(match[3], ref);
    if (!unit) return null;
    else return {
      val: val,
      unit: unit,
      extra: match[4],
    }
  }
  match = units.valueAltRegex.exec(val);
  if (match && (match[1] || match[4])) {
    val = parseFloat(match[1] + "." + match[4]);
    if (match[3]) {
      val = val * units.getMultiplier(match[3]);
    }
    unit = inferUnit(match[2], ref);
    if (!unit) return null;
    else return {
      val: val,
      unit: unit,
      extra: match[5],
    }
  }
  return null;
}

function valueCompare(a, b, stra, strb) {
  if (a === null && b === null) {
    // Failed to parse both values, compare them as strings.
    if (stra != strb) return stra > strb ? 1 : -1;
    else return 0;
  } else if (a === null) {
    return 1;
  } else if (b === null) {
    return -1;
  } else {
    if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
    else if (a.val != b.val) return a.val > b.val ? 1 : -1;
    else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
    else return 0;
  }
}

function validateSaveImgDimension(element) {
  var valid = false;
  var intValue = 0;
  if (/^[1-9]\d*$/.test(element.value)) {
    intValue = parseInt(element.value);
    if (intValue <= 16000) {
      valid = true;
    }
  }
  if (valid) {
    element.classList.remove("invalid");
  } else {
    element.classList.add("invalid");
  }
  return intValue;
}

function saveImage(layer) {
  var width = validateSaveImgDimension(document.getElementById("render-save-width"));
  var height = validateSaveImgDimension(document.getElementById("render-save-height"));
  var bgcolor = null;
  if (!document.getElementById("render-save-transparent").checked) {
    var style = getComputedStyle(topmostdiv);
    bgcolor = style.getPropertyValue("background-color");
  }
  if (!width || !height) return;

  // Prepare image
  var canvas = document.createElement("canvas");
  var layerdict = {
    transform: {
      x: 0,
      y: 0,
      s: 1,
      panx: 0,
      pany: 0,
      zoom: 1,
    },
    bg: canvas,
    fab: canvas,
    silk: canvas,
    highlight: canvas,
    layer: layer,
  }
  // Do the rendering
  recalcLayerScale(layerdict, width, height);
  prepareLayer(layerdict);
  clearCanvas(canvas, bgcolor);
  drawBackground(layerdict, false);
  drawHighlightsOnLayer(layerdict, false);

  // Save image
  var imgdata = canvas.toDataURL("image/png");

  var filename = pcbdata.metadata.title;
  if (pcbdata.metadata.revision) {
    filename += `.${pcbdata.metadata.revision}`;
  }
  filename += `.${layer}.png`;
  saveFile(filename, dataURLtoBlob(imgdata));
}

function saveSettings() {
  var data = {
    type: "InteractiveHtmlBom settings",
    version: 1,
    pcbmetadata: pcbdata.metadata,
    settings: settings,
  }
  var blob = new Blob([JSON.stringify(data, null, 4)], {
    type: "application/json"
  });
  saveFile(`${pcbdata.metadata.title}.settings.json`, blob);
}

function loadSettings() {
  var input = document.createElement("input");
  input.type = "file";
  input.accept = ".settings.json";
  input.onchange = function (e) {
    var file = e.target.files[0];
    var reader = new FileReader();
    reader.onload = readerEvent => {
      var content = readerEvent.target.result;
      var newSettings;
      try {
        newSettings = JSON.parse(content);
      } catch (e) {
        alert("Selected file is not InteractiveHtmlBom settings file.");
        return;
      }
      if (newSettings.type != "InteractiveHtmlBom settings") {
        alert("Selected file is not InteractiveHtmlBom settings file.");
        return;
      }
      var metadataMatches = newSettings.hasOwnProperty("pcbmetadata");
      if (metadataMatches) {
        for (var k in pcbdata.metadata) {
          if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) {
            metadataMatches = false;
          }
        }
      }
      if (!metadataMatches) {
        var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4);
        var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4);
        if (!confirm(
          `Settins file metadata does not match current metadata.\n\n` +
          `Page metadata:\n${currentMetadata}\n\n` +
          `Settings file metadata:\n${fileMetadata}\n\n` +
          `Press OK if you would like to import settings anyway.`)) {
          return;
        }
      }
      overwriteSettings(newSettings.settings);
    }
    reader.readAsText(file, 'UTF-8');
  }
  input.click();
}

function resetSettings() {
  if (!confirm(
    `This will reset all checkbox states and other settings.\n\n` +
    `Press OK if you want to continue.`)) {
    return;
  }
  if (storage) {
    var keys = [];
    for (var i = 0; i < storage.length; i++) {
      var key = storage.key(i);
      if (key.startsWith(storagePrefix)) keys.push(key);
    }
    for (var key of keys) storage.removeItem(key);
  }
  location.reload();
}

function overwriteSettings(newSettings) {
  initDone = false;
  Object.assign(settings, newSettings);
  writeStorage("bomlayout", settings.bomlayout);
  writeStorage("bommode", settings.bommode);
  writeStorage("canvaslayout", settings.canvaslayout);
  writeStorage("bomCheckboxes", settings.checkboxes.join(","));
  document.getElementById("bomCheckboxes").value = settings.checkboxes.join(",");
  for (var checkbox of settings.checkboxes) {
    writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
  }
  writeStorage("markWhenChecked", settings.markWhenChecked);
  padsVisible(settings.renderPads);
  document.getElementById("padsCheckbox").checked = settings.renderPads;
  fabricationVisible(settings.renderFabrication);
  document.getElementById("fabricationCheckbox").checked = settings.renderFabrication;
  silkscreenVisible(settings.renderSilkscreen);
  document.getElementById("silkscreenCheckbox").checked = settings.renderSilkscreen;
  referencesVisible(settings.renderReferences);
  document.getElementById("referencesCheckbox").checked = settings.renderReferences;
  valuesVisible(settings.renderValues);
  document.getElementById("valuesCheckbox").checked = settings.renderValues;
  tracksVisible(settings.renderTracks);
  document.getElementById("tracksCheckbox").checked = settings.renderTracks;
  zonesVisible(settings.renderZones);
  document.getElementById("zonesCheckbox").checked = settings.renderZones;
  dnpOutline(settings.renderDnpOutline);
  document.getElementById("dnpOutlineCheckbox").checked = settings.renderDnpOutline;
  setRedrawOnDrag(settings.redrawOnDrag);
  document.getElementById("dragCheckbox").checked = settings.redrawOnDrag;
  setDarkMode(settings.darkMode);
  document.getElementById("darkmodeCheckbox").checked = settings.darkMode;
  setHighlightPin1(settings.highlightpin1);
  document.forms.highlightpin1.highlightpin1.value = settings.highlightpin1;
  writeStorage("boardRotation", settings.boardRotation);
  document.getElementById("boardRotation").value = settings.boardRotation / 5;
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  setOffsetBackRotation(settings.offsetBackRotation);
  document.getElementById("offsetBackRotationCheckbox").checked = settings.offsetBackRotation;
  initDone = true;
  prepCheckboxes();
  changeBomLayout(settings.bomlayout);
}

function saveFile(filename, blob) {
  var link = document.createElement("a");
  var objurl = URL.createObjectURL(blob);
  link.download = filename;
  link.href = objurl;
  link.click();
}

function dataURLtoBlob(dataurl) {
  var arr = dataurl.split(','),
    mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]),
    n = bstr.length,
    u8arr = new Uint8Array(n);
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], {
    type: mime
  });
}

var settings = {
  canvaslayout: "FB",
  bomlayout: "left-right",
  bommode: "grouped",
  checkboxes: [],
  checkboxStoredRefs: {},
  darkMode: false,
  highlightpin1: "none",
  redrawOnDrag: true,
  boardRotation: 0,
  offsetBackRotation: false,
  renderPads: true,
  renderReferences: true,
  renderValues: true,
  renderSilkscreen: true,
  renderFabrication: true,
  renderDnpOutline: false,
  renderTracks: true,
  renderZones: true,
  columnOrder: [],
  hiddenColumns: [],
  netColors: {},
}

function initDefaults() {
  settings.bomlayout = readStorage("bomlayout");
  if (settings.bomlayout === null) {
    settings.bomlayout = config.bom_view;
  }
  if (!['bom-only', 'left-right', 'top-bottom'].includes(settings.bomlayout)) {
    settings.bomlayout = config.bom_view;
  }
  settings.bommode = readStorage("bommode");
  if (settings.bommode === null) {
    settings.bommode = "grouped";
  }
  if (settings.bommode == "netlist" && !pcbdata.nets) {
    settings.bommode = "grouped";
  }
  if (!["grouped", "ungrouped", "netlist"].includes(settings.bommode)) {
    settings.bommode = "grouped";
  }
  settings.canvaslayout = readStorage("canvaslayout");
  if (settings.canvaslayout === null) {
    settings.canvaslayout = config.layer_view;
  }
  var bomCheckboxes = readStorage("bomCheckboxes");
  if (bomCheckboxes === null) {
    bomCheckboxes = config.checkboxes;
  }
  settings.checkboxes = bomCheckboxes.split(",").filter((e) => e);
  document.getElementById("bomCheckboxes").value = bomCheckboxes;

  var highlightpin1 = readStorage("highlightpin1") || config.highlight_pin1;
  if (highlightpin1 === "false") highlightpin1 = "none";
  if (highlightpin1 === "true") highlightpin1 = "all";
  setHighlightPin1(highlightpin1);
  document.forms.highlightpin1.highlightpin1.value = highlightpin1;

  settings.markWhenChecked = readStorage("markWhenChecked") || "";
  populateMarkWhenCheckedOptions();

  function initBooleanSetting(storageString, def, elementId, func) {
    var b = readStorage(storageString);
    if (b === null) {
      b = def;
    } else {
      b = (b == "true");
    }
    document.getElementById(elementId).checked = b;
    func(b);
  }

  initBooleanSetting("padsVisible", config.show_pads, "padsCheckbox", padsVisible);
  initBooleanSetting("fabricationVisible", config.show_fabrication, "fabricationCheckbox", fabricationVisible);
  initBooleanSetting("silkscreenVisible", config.show_silkscreen, "silkscreenCheckbox", silkscreenVisible);
  initBooleanSetting("referencesVisible", true, "referencesCheckbox", referencesVisible);
  initBooleanSetting("valuesVisible", true, "valuesCheckbox", valuesVisible);
  if ("tracks" in pcbdata) {
    initBooleanSetting("tracksVisible", true, "tracksCheckbox", tracksVisible);
    initBooleanSetting("zonesVisible", true, "zonesCheckbox", zonesVisible);
  } else {
    document.getElementById("tracksAndZonesCheckboxes").style.display = "none";
    tracksVisible(false);
    zonesVisible(false);
  }
  initBooleanSetting("dnpOutline", false, "dnpOutlineCheckbox", dnpOutline);
  initBooleanSetting("redrawOnDrag", config.redraw_on_drag, "dragCheckbox", setRedrawOnDrag);
  initBooleanSetting("darkmode", config.dark_mode, "darkmodeCheckbox", setDarkMode);

  var fields = ["checkboxes", "References"].concat(config.fields).concat(["Quantity"]);
  var hcols = JSON.parse(readStorage("hiddenColumns"));
  if (hcols === null) {
    hcols = [];
  }
  settings.hiddenColumns = hcols.filter(e => fields.includes(e));

  var cord = JSON.parse(readStorage("columnOrder"));
  if (cord === null) {
    cord = fields;
  } else {
    cord = cord.filter(e => fields.includes(e));
    if (cord.length != fields.length)
      cord = fields;
  }
  settings.columnOrder = cord;

  settings.boardRotation = readStorage("boardRotation");
  if (settings.boardRotation === null) {
    settings.boardRotation = config.board_rotation * 5;
  } else {
    settings.boardRotation = parseInt(settings.boardRotation);
  }
  document.getElementById("boardRotation").value = settings.boardRotation / 5;
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  initBooleanSetting("offsetBackRotation", config.offset_back_rotation, "offsetBackRotationCheckbox", setOffsetBackRotation);

  settings.netColors = JSON.parse(readStorage("netColors")) || {};
}

// Helper classes for user js callbacks.

const IBOM_EVENT_TYPES = {
  ALL: "all",
  HIGHLIGHT_EVENT: "highlightEvent",
  CHECKBOX_CHANGE_EVENT: "checkboxChangeEvent",
  BOM_BODY_CHANGE_EVENT: "bomBodyChangeEvent",
}

const EventHandler = {
  callbacks: {},
  init: function () {
    for (eventType of Object.values(IBOM_EVENT_TYPES))
      this.callbacks[eventType] = [];
  },
  registerCallback: function (eventType, callback) {
    this.callbacks[eventType].push(callback);
  },
  emitEvent: function (eventType, eventArgs) {
    event = {
      eventType: eventType,
      args: eventArgs,
    }
    var callback;
    for (callback of this.callbacks[eventType])
      callback(event);
    for (callback of this.callbacks[IBOM_EVENT_TYPES.ALL])
      callback(event);
  }
}
EventHandler.init();

///////////////////////////////////////////////

///////////////////////////////////////////////
/* PCB rendering code */

var emptyContext2d = document.createElement("canvas").getContext("2d");

function deg2rad(deg) {
  return deg * Math.PI / 180;
}

function calcFontPoint(linepoint, text, offsetx, offsety, tilt) {
  var point = [
    linepoint[0] * text.width + offsetx,
    linepoint[1] * text.height + offsety
  ];
  // This approximates pcbnew behavior with how text tilts depending on horizontal justification
  point[0] -= (linepoint[1] + 0.5 * (1 + text.justify[0])) * text.height * tilt;
  return point;
}

function drawText(ctx, text, color) {
  if ("ref" in text && !settings.renderReferences) return;
  if ("val" in text && !settings.renderValues) return;
  ctx.save();
  ctx.fillStyle = color;
  ctx.strokeStyle = color;
  ctx.lineCap = "round";
  ctx.lineJoin = "round";
  ctx.lineWidth = text.thickness;
  if ("svgpath" in text) {
    ctx.stroke(new Path2D(text.svgpath));
    ctx.restore();
    return;
  }
  if ("polygons" in text) {
    ctx.fill(getPolygonsPath(text));
    ctx.restore();
    return;
  }
  ctx.translate(...text.pos);
  ctx.translate(text.thickness * 0.5, 0);
  var angle = -text.angle;
  if (text.attr.includes("mirrored")) {
    ctx.scale(-1, 1);
    angle = -angle;
  }
  var tilt = 0;
  if (text.attr.includes("italic")) {
    tilt = 0.125;
  }
  var interline = text.height * 1.5 + text.thickness;
  var txt = text.text.split("\n");
  // KiCad ignores last empty line.
  if (txt[txt.length - 1] == '') txt.pop();
  ctx.rotate(deg2rad(angle));
  var offsety = (1 - text.justify[1]) / 2 * text.height; // One line offset
  offsety -= (txt.length - 1) * (text.justify[1] + 1) / 2 * interline; // Multiline offset
  for (var i in txt) {
    var lineWidth = text.thickness + interline / 2 * tilt;
    for (var j = 0; j < txt[i].length; j++) {
      if (txt[i][j] == '\t') {
        var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
        lineWidth += fourSpaces - lineWidth % fourSpaces;
      } else {
        if (txt[i][j] == '~') {
          j++;
          if (j == txt[i].length)
            break;
        }
        lineWidth += pcbdata.font_data[txt[i][j]].w * text.width;
      }
    }
    var offsetx = -lineWidth * (text.justify[0] + 1) / 2;
    var inOverbar = false;
    for (var j = 0; j < txt[i].length; j++) {
      if (config.kicad_text_formatting) {
        if (txt[i][j] == '\t') {
          var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
          offsetx += fourSpaces - offsetx % fourSpaces;
          continue;
        } else if (txt[i][j] == '~') {
          j++;
          if (j == txt[i].length)
            break;
          if (txt[i][j] != '~') {
            inOverbar = !inOverbar;
          }
        }
      }
      var glyph = pcbdata.font_data[txt[i][j]];
      if (inOverbar) {
        var overbarStart = [offsetx, -text.height * 1.4 + offsety];
        var overbarEnd = [offsetx + text.width * glyph.w, overbarStart[1]];

        if (!lastHadOverbar) {
          overbarStart[0] += text.height * 1.4 * tilt;
          lastHadOverbar = true;
        }
        ctx.beginPath();
        ctx.moveTo(...overbarStart);
        ctx.lineTo(...overbarEnd);
        ctx.stroke();
      } else {
        lastHadOverbar = false;
      }
      for (var line of glyph.l) {
        ctx.beginPath();
        ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt));
        for (var k = 1; k < line.length; k++) {
          ctx.lineTo(...calcFontPoint(line[k], text, offsetx, offsety, tilt));
        }
        ctx.stroke();
      }
      offsetx += glyph.w * text.width;
    }
    offsety += interline;
  }
  ctx.restore();
}

function drawedge(ctx, scalefactor, edge, color) {
  ctx.strokeStyle = color;
  ctx.fillStyle = color;
  ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
  ctx.lineCap = "round";
  ctx.lineJoin = "round";
  if ("svgpath" in edge) {
    ctx.stroke(new Path2D(edge.svgpath));
  } else {
    ctx.beginPath();
    if (edge.type == "segment") {
      ctx.moveTo(...edge.start);
      ctx.lineTo(...edge.end);
    }
    if (edge.type == "rect") {
      ctx.moveTo(...edge.start);
      ctx.lineTo(edge.start[0], edge.end[1]);
      ctx.lineTo(...edge.end);
      ctx.lineTo(edge.end[0], edge.start[1]);
      ctx.lineTo(...edge.start);
    }
    if (edge.type == "arc") {
      ctx.arc(
        ...edge.start,
        edge.radius,
        deg2rad(edge.startangle),
        deg2rad(edge.endangle));
    }
    if (edge.type == "circle") {
      ctx.arc(
        ...edge.start,
        edge.radius,
        0, 2 * Math.PI);
      ctx.closePath();
    }
    if (edge.type == "curve") {
      ctx.moveTo(...edge.start);
      ctx.bezierCurveTo(...edge.cpa, ...edge.cpb, ...edge.end);
    }
    if("filled" in edge && edge.filled)
      ctx.fill();
    else
      ctx.stroke();
  }
}

function getChamferedRectPath(size, radius, chamfpos, chamfratio) {
  // chamfpos is a bitmask, left = 1, right = 2, bottom left = 4, bottom right = 8
  var path = new Path2D();
  var width = size[0];
  var height = size[1];
  var x = width * -0.5;
  var y = height * -0.5;
  var chamfOffset = Math.min(width, height) * chamfratio;
  path.moveTo(x, 0);
  if (chamfpos & 4) {
    path.lineTo(x, y + height - chamfOffset);
    path.lineTo(x + chamfOffset, y + height);
    path.lineTo(0, y + height);
  } else {
    path.arcTo(x, y + height, x + width, y + height, radius);
  }
  if (chamfpos & 8) {
    path.lineTo(x + width - chamfOffset, y + height);
    path.lineTo(x + width, y + height - chamfOffset);
    path.lineTo(x + width, 0);
  } else {
    path.arcTo(x + width, y + height, x + width, y, radius);
  }
  if (chamfpos & 2) {
    path.lineTo(x + width, y + chamfOffset);
    path.lineTo(x + width - chamfOffset, y);
    path.lineTo(0, y);
  } else {
    path.arcTo(x + width, y, x, y, radius);
  }
  if (chamfpos & 1) {
    path.lineTo(x + chamfOffset, y);
    path.lineTo(x, y + chamfOffset);
    path.lineTo(x, 0);
  } else {
    path.arcTo(x, y, x, y + height, radius);
  }
  path.closePath();
  return path;
}

function getOblongPath(size) {
  return getChamferedRectPath(size, Math.min(size[0], size[1]) / 2, 0, 0);
}

function getPolygonsPath(shape) {
  if (shape.path2d) {
    return shape.path2d;
  }
  if ("svgpath" in shape) {
    shape.path2d = new Path2D(shape.svgpath);
  } else {
    var path = new Path2D();
    for (var polygon of shape.polygons) {
      path.moveTo(...polygon[0]);
      for (var i = 1; i < polygon.length; i++) {
        path.lineTo(...polygon[i]);
      }
      path.closePath();
    }
    shape.path2d = path;
  }
  return shape.path2d;
}

function drawPolygonShape(ctx, scalefactor, shape, color) {
  ctx.save();
  if (!("svgpath" in shape)) {
    ctx.translate(...shape.pos);
    ctx.rotate(deg2rad(-shape.angle));
  }
  if("filled" in shape && !shape.filled) {
    ctx.strokeStyle = color;
    ctx.lineWidth = Math.max(1 / scalefactor, shape.width);
    ctx.lineCap = "round";
    ctx.lineJoin = "round";
    ctx.stroke(getPolygonsPath(shape));
  } else {
    ctx.fillStyle = color;
    ctx.fill(getPolygonsPath(shape));
  }
  ctx.restore();
}

function drawDrawing(ctx, scalefactor, drawing, color) {
  if (["segment", "arc", "circle", "curve", "rect"].includes(drawing.type)) {
    drawedge(ctx, scalefactor, drawing, color);
  } else if (drawing.type == "polygon") {
    drawPolygonShape(ctx, scalefactor, drawing, color);
  } else {
    drawText(ctx, drawing, color);
  }
}

function getCirclePath(radius) {
  var path = new Path2D();
  path.arc(0, 0, radius, 0, 2 * Math.PI);
  path.closePath();
  return path;
}

function getCachedPadPath(pad) {
  if (!pad.path2d) {
    // if path2d is not set, build one and cache it on pad object
    if (pad.shape == "rect") {
      pad.path2d = new Path2D();
      pad.path2d.rect(...pad.size.map(c => -c * 0.5), ...pad.size);
    } else if (pad.shape == "oval") {
      pad.path2d = getOblongPath(pad.size);
    } else if (pad.shape == "circle") {
      pad.path2d = getCirclePath(pad.size[0] / 2);
    } else if (pad.shape == "roundrect") {
      pad.path2d = getChamferedRectPath(pad.size, pad.radius, 0, 0);
    } else if (pad.shape == "chamfrect") {
      pad.path2d = getChamferedRectPath(pad.size, pad.radius, pad.chamfpos, pad.chamfratio)
    } else if (pad.shape == "custom") {
      pad.path2d = getPolygonsPath(pad);
    }
  }
  return pad.path2d;
}

function drawPad(ctx, pad, color, outline) {
  ctx.save();
  ctx.translate(...pad.pos);
  ctx.rotate(-deg2rad(pad.angle));
  if (pad.offset) {
    ctx.translate(...pad.offset);
  }
  ctx.fillStyle = color;
  ctx.strokeStyle = color;
  var path = getCachedPadPath(pad);
  if (outline) {
    ctx.stroke(path);
  } else {
    ctx.fill(path);
  }
  ctx.restore();
}

function drawPadHole(ctx, pad, padHoleColor) {
  if (pad.type != "th") return;
  ctx.save();
  ctx.translate(...pad.pos);
  ctx.rotate(-deg2rad(pad.angle));
  ctx.fillStyle = padHoleColor;
  if (pad.drillshape == "oblong") {
    ctx.fill(getOblongPath(pad.drillsize));
  } else {
    ctx.fill(getCirclePath(pad.drillsize[0] / 2));
  }
  ctx.restore();
}

function drawFootprint(ctx, layer, scalefactor, footprint, colors, highlight, outline) {
  if (highlight) {
    // draw bounding box
    if (footprint.layer == layer) {
      ctx.save();
      ctx.globalAlpha = 0.2;
      ctx.translate(...footprint.bbox.pos);
      ctx.rotate(deg2rad(-footprint.bbox.angle));
      ctx.translate(...footprint.bbox.relpos);
      ctx.fillStyle = colors.pad;
      ctx.fillRect(0, 0, ...footprint.bbox.size);
      ctx.globalAlpha = 1;
      ctx.strokeStyle = colors.pad;
      ctx.lineWidth = 3 / scalefactor;
      ctx.strokeRect(0, 0, ...footprint.bbox.size);
      ctx.restore();
    }
  }
  // draw drawings
  for (var drawing of footprint.drawings) {
    if (drawing.layer == layer) {
      drawDrawing(ctx, scalefactor, drawing.drawing, colors.pad);
    }
  }
  ctx.lineWidth = 3 / scalefactor;
  // draw pads
  if (settings.renderPads) {
    for (var pad of footprint.pads) {
      if (pad.layers.includes(layer)) {
        drawPad(ctx, pad, colors.pad, outline);
        if (pad.pin1 &&
          (settings.highlightpin1 == "all" ||
            settings.highlightpin1 == "selected" && highlight)) {
          drawPad(ctx, pad, colors.outline, true);
        }
      }
    }
    for (var pad of footprint.pads) {
      drawPadHole(ctx, pad, colors.padHole);
    }
  }
}

function drawEdgeCuts(canvas, scalefactor) {
  var ctx = canvas.getContext("2d");
  var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
  for (var edge of pcbdata.edges) {
    drawDrawing(ctx, scalefactor, edge, edgecolor);
  }
}

function drawFootprints(canvas, layer, scalefactor, highlight) {
  var ctx = canvas.getContext("2d");
  ctx.lineWidth = 3 / scalefactor;
  var style = getComputedStyle(topmostdiv);

  var colors = {
    pad: style.getPropertyValue('--pad-color'),
    padHole: style.getPropertyValue('--pad-hole-color'),
    outline: style.getPropertyValue('--pin1-outline-color'),
  }

  for (var i = 0; i < pcbdata.footprints.length; i++) {
    var mod = pcbdata.footprints[i];
    var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
    var h = highlightedFootprints.includes(i);
    var d = markedFootprints.has(i);
    if (highlight) {
      if(h && d) {
        colors.pad = style.getPropertyValue('--pad-color-highlight-both');
        colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-both');
      } else if (h) {
        colors.pad = style.getPropertyValue('--pad-color-highlight');
        colors.outline = style.getPropertyValue('--pin1-outline-color-highlight');
      } else if (d) {
        colors.pad = style.getPropertyValue('--pad-color-highlight-marked');
        colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-marked');
      }
    }
    if( h || d || !highlight) {
      drawFootprint(ctx, layer, scalefactor, mod, colors, highlight, outline);
    }
  }
}

function drawBgLayer(layername, canvas, layer, scalefactor, edgeColor, polygonColor, textColor) {
  var ctx = canvas.getContext("2d");
  for (var d of pcbdata.drawings[layername][layer]) {
    if (["segment", "arc", "circle", "curve", "rect"].includes(d.type)) {
      drawedge(ctx, scalefactor, d, edgeColor);
    } else if (d.type == "polygon") {
      drawPolygonShape(ctx, scalefactor, d, polygonColor);
    } else {
      drawText(ctx, d, textColor);
    }
  }
}

function drawTracks(canvas, layer, defaultColor, highlight) {
  ctx = canvas.getContext("2d");
  ctx.lineCap = "round";
  for (var track of pcbdata.tracks[layer]) {
    if (highlight && highlightedNet != track.net) continue;
    ctx.strokeStyle = highlight ? defaultColor : settings.netColors[track.net] || defaultColor;
    ctx.lineWidth = track.width;
    ctx.beginPath();
    if ('radius' in track) {
      ctx.arc(
        ...track.center,
        track.radius,
        deg2rad(track.startangle),
        deg2rad(track.endangle));
    } else {
      ctx.moveTo(...track.start);
      ctx.lineTo(...track.end);
    }
    ctx.stroke();
  }
}

function drawZones(canvas, layer, defaultColor, highlight) {
  ctx = canvas.getContext("2d");
  ctx.lineJoin = "round";
  for (var zone of pcbdata.zones[layer]) {
    if (highlight && highlightedNet != zone.net) continue;
    ctx.strokeStyle = highlight ? defaultColor : settings.netColors[zone.net] || defaultColor;
    ctx.fillStyle = highlight ? defaultColor : settings.netColors[zone.net] || defaultColor;
    if (!zone.path2d) {
      zone.path2d = getPolygonsPath(zone);
    }
    ctx.fill(zone.path2d, zone.fillrule || "nonzero");
    if (zone.width > 0) {
      ctx.lineWidth = zone.width;
      ctx.stroke(zone.path2d);
    }
  }
}

function clearCanvas(canvas, color = null) {
  var ctx = canvas.getContext("2d");
  ctx.save();
  ctx.setTransform(1, 0, 0, 1, 0, 0);
  if (color) {
    ctx.fillStyle = color;
    ctx.fillRect(0, 0, canvas.width, canvas.height);
  } else {
    if (!window.matchMedia("print").matches)
      ctx.clearRect(0, 0, canvas.width, canvas.height);
  }
  ctx.restore();
}

function drawNets(canvas, layer, highlight) {
  var style = getComputedStyle(topmostdiv);
  if (settings.renderTracks) {
    var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color');
    drawTracks(canvas, layer, trackColor, highlight);
  }
  if (settings.renderZones) {
    var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color');
    drawZones(canvas, layer, zoneColor, highlight);
  }
  if (highlight && settings.renderPads) {
    var padColor = style.getPropertyValue('--pad-color-highlight');
    var padHoleColor = style.getPropertyValue('--pad-hole-color');
    var ctx = canvas.getContext("2d");
    for (var footprint of pcbdata.footprints) {
      // draw pads
      var padDrawn = false;
      for (var pad of footprint.pads) {
        if (highlightedNet != pad.net) continue;
        if (pad.layers.includes(layer)) {
          drawPad(ctx, pad, padColor, false);
          padDrawn = true;
        }
      }
      if (padDrawn) {
        // redraw all pad holes because some pads may overlap
        for (var pad of footprint.pads) {
          drawPadHole(ctx, pad, padHoleColor);
        }
      }
    }
  }
}

function drawHighlightsOnLayer(canvasdict, clear = true) {
  if (clear) {
    clearCanvas(canvasdict.highlight);
  }
  if (markedFootprints.size > 0 || highlightedFootprints.length > 0) {
    drawFootprints(canvasdict.highlight, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom, true);
  }
  if (highlightedNet !== null) {
    drawNets(canvasdict.highlight, canvasdict.layer, true);
  }
}

function drawHighlights() {
  drawHighlightsOnLayer(allcanvas.front);
  drawHighlightsOnLayer(allcanvas.back);
}

function drawBackground(canvasdict, clear = true) {
  if (clear) {
    clearCanvas(canvasdict.bg);
    clearCanvas(canvasdict.fab);
    clearCanvas(canvasdict.silk);
  }

  drawNets(canvasdict.bg, canvasdict.layer, false);
  drawFootprints(canvasdict.bg, canvasdict.layer,
    canvasdict.transform.s * canvasdict.transform.zoom, false);

  drawEdgeCuts(canvasdict.bg, canvasdict.transform.s * canvasdict.transform.zoom);

  var style = getComputedStyle(topmostdiv);
  var edgeColor = style.getPropertyValue('--silkscreen-edge-color');
  var polygonColor = style.getPropertyValue('--silkscreen-polygon-color');
  var textColor = style.getPropertyValue('--silkscreen-text-color');
  if (settings.renderSilkscreen) {
    drawBgLayer(
      "silkscreen", canvasdict.silk, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom,
      edgeColor, polygonColor, textColor);
  }
  edgeColor = style.getPropertyValue('--fabrication-edge-color');
  polygonColor = style.getPropertyValue('--fabrication-polygon-color');
  textColor = style.getPropertyValue('--fabrication-text-color');
  if (settings.renderFabrication) {
    drawBgLayer(
      "fabrication", canvasdict.fab, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom,
      edgeColor, polygonColor, textColor);
  }
}

function prepareCanvas(canvas, flip, transform) {
  var ctx = canvas.getContext("2d");
  ctx.setTransform(1, 0, 0, 1, 0, 0);
  ctx.scale(transform.zoom, transform.zoom);
  ctx.translate(transform.panx, transform.pany);
  if (flip) {
    ctx.scale(-1, 1);
  }
  ctx.translate(transform.x, transform.y);
  ctx.rotate(deg2rad(settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0)));
  ctx.scale(transform.s, transform.s);
}

function prepareLayer(canvasdict) {
  var flip = (canvasdict.layer === "B");
  for (var c of ["bg", "fab", "silk", "highlight"]) {
    prepareCanvas(canvasdict[c], flip, canvasdict.transform);
  }
}

function rotateVector(v, angle) {
  angle = deg2rad(angle);
  return [
    v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
    v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
  ];
}

function applyRotation(bbox, flip) {
  var corners = [
    [bbox.minx, bbox.miny],
    [bbox.minx, bbox.maxy],
    [bbox.maxx, bbox.miny],
    [bbox.maxx, bbox.maxy],
  ];
  corners = corners.map((v) => rotateVector(v, settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0)));
  return {
    minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
    miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
    maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
    maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
  }
}

function recalcLayerScale(layerdict, width, height) {
  var flip = (layerdict.layer === "B");
  var bbox = applyRotation(pcbdata.edges_bbox, flip);
  var scalefactor = 0.98 * Math.min(
    width / (bbox.maxx - bbox.minx),
    height / (bbox.maxy - bbox.miny)
  );
  if (scalefactor < 0.1) {
    scalefactor = 1;
  }
  layerdict.transform.s = scalefactor;
  if (flip) {
    layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
  } else {
    layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
  }
  layerdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
  for (var c of ["bg", "fab", "silk", "highlight"]) {
    canvas = layerdict[c];
    canvas.width = width;
    canvas.height = height;
    canvas.style.width = (width / devicePixelRatio) + "px";
    canvas.style.height = (height / devicePixelRatio) + "px";
  }
}

function redrawCanvas(layerdict) {
  prepareLayer(layerdict);
  drawBackground(layerdict);
  drawHighlightsOnLayer(layerdict);
}

function resizeCanvas(layerdict) {
  var canvasdivid = {
    "F": "frontcanvas",
    "B": "backcanvas"
  } [layerdict.layer];
  var width = document.getElementById(canvasdivid).clientWidth * devicePixelRatio;
  var height = document.getElementById(canvasdivid).clientHeight * devicePixelRatio;
  recalcLayerScale(layerdict, width, height);
  redrawCanvas(layerdict);
}

function resizeAll() {
  resizeCanvas(allcanvas.front);
  resizeCanvas(allcanvas.back);
}

function pointWithinDistanceToSegment(x, y, x1, y1, x2, y2, d) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var dx, dy;
  if (len_sq == 0) {
    // start and end of the segment coincide
    dx = x - x1;
    dy = y - y1;
  } else {
    var param = dot / len_sq;
    var xx, yy;
    if (param < 0) {
      xx = x1;
      yy = y1;
    } else if (param > 1) {
      xx = x2;
      yy = y2;
    } else {
      xx = x1 + param * C;
      yy = y1 + param * D;
    }
    dx = x - xx;
    dy = y - yy;
  }
  return dx * dx + dy * dy <= d * d;
}

function modulo(n, mod) {
  return ((n % mod) + mod) % mod;
}

function pointWithinDistanceToArc(x, y, xc, yc, radius, startangle, endangle, d) {
  var dx = x - xc;
  var dy = y - yc;
  var r_sq = dx * dx + dy * dy;
  var rmin = Math.max(0, radius - d);
  var rmax = radius + d;

  if (r_sq < rmin * rmin || r_sq > rmax * rmax)
    return false;

  var angle1 = modulo(deg2rad(startangle), 2 * Math.PI);
  var dx1 = xc + radius * Math.cos(angle1) - x;
  var dy1 = yc + radius * Math.sin(angle1) - y;
  if (dx1 * dx1 + dy1 * dy1 <= d * d)
    return true;

  var angle2 = modulo(deg2rad(endangle), 2 * Math.PI);
  var dx2 = xc + radius * Math.cos(angle2) - x;
  var dy2 = yc + radius * Math.sin(angle2) - y;
  if (dx2 * dx2 + dy2 * dy2 <= d * d)
    return true;

  var angle = modulo(Math.atan2(dy, dx), 2 * Math.PI);
  if (angle1 > angle2)
    return (angle >= angle2 || angle <= angle1);
  else
    return (angle >= angle1 && angle <= angle2);
}

function pointWithinPad(x, y, pad) {
  var v = [x - pad.pos[0], y - pad.pos[1]];
  v = rotateVector(v, pad.angle);
  if (pad.offset) {
    v[0] -= pad.offset[0];
    v[1] -= pad.offset[1];
  }
  return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
}

function netHitScan(layer, x, y) {
  // Check track segments
  if (settings.renderTracks && pcbdata.tracks) {
    for (var track of pcbdata.tracks[layer]) {
      if ('radius' in track) {
        if (pointWithinDistanceToArc(x, y, ...track.center, track.radius, track.startangle, track.endangle, track.width / 2)) {
          return track.net;
        }
      } else {
        if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
          return track.net;
        }
      }
    }
  }
  // Check pads
  if (settings.renderPads) {
    for (var footprint of pcbdata.footprints) {
      for (var pad of footprint.pads) {
        if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
          return pad.net;
        }
      }
    }
  }
  return null;
}

function pointWithinFootprintBbox(x, y, bbox) {
  var v = [x - bbox.pos[0], y - bbox.pos[1]];
  v = rotateVector(v, bbox.angle);
  return bbox.relpos[0] <= v[0] && v[0] <= bbox.relpos[0] + bbox.size[0] &&
    bbox.relpos[1] <= v[1] && v[1] <= bbox.relpos[1] + bbox.size[1];
}

function bboxHitScan(layer, x, y) {
  var result = [];
  for (var i = 0; i < pcbdata.footprints.length; i++) {
    var footprint = pcbdata.footprints[i];
    if (footprint.layer == layer) {
      if (pointWithinFootprintBbox(x, y, footprint.bbox)) {
        result.push(i);
      }
    }
  }
  return result;
}

function handlePointerDown(e, layerdict) {
  if (e.button != 0 && e.button != 1) {
    return;
  }
  e.preventDefault();
  e.stopPropagation();

  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  layerdict.pointerStates[e.pointerId] = {
    distanceTravelled: 0,
    lastX: e.offsetX,
    lastY: e.offsetY,
    downTime: Date.now(),
  };
}

function handleMouseClick(e, layerdict) {
  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  var x = e.offsetX;
  var y = e.offsetY;
  var t = layerdict.transform;
  var flip = layerdict.layer === "B";
  if (flip) {
    x = (devicePixelRatio * x / t.zoom - t.panx + t.x) / -t.s;
  } else {
    x = (devicePixelRatio * x / t.zoom - t.panx - t.x) / t.s;
  }
  y = (devicePixelRatio * y / t.zoom - t.y - t.pany) / t.s;
  var v = rotateVector([x, y], -settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0));
  if ("nets" in pcbdata) {
    var net = netHitScan(layerdict.layer, ...v);
    if (net !== highlightedNet) {
      netClicked(net);
    }
  }
  if (highlightedNet === null) {
    var footprints = bboxHitScan(layerdict.layer, ...v);
    if (footprints.length > 0) {
      footprintsClicked(footprints);
    }
  }
}

function handlePointerLeave(e, layerdict) {
  e.preventDefault();
  e.stopPropagation();

  if (!settings.redrawOnDrag) {
    redrawCanvas(layerdict);
  }

  delete layerdict.pointerStates[e.pointerId];
}

function resetTransform(layerdict) {
  layerdict.transform.panx = 0;
  layerdict.transform.pany = 0;
  layerdict.transform.zoom = 1;
  redrawCanvas(layerdict);
}

function handlePointerUp(e, layerdict) {
  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  e.preventDefault();
  e.stopPropagation();

  if (e.button == 2) {
    // Reset pan and zoom on right click.
    resetTransform(layerdict);
    layerdict.anotherPointerTapped = false;
    return;
  }

  // We haven't necessarily had a pointermove event since the interaction started, so make sure we update this now
  var ptr = layerdict.pointerStates[e.pointerId];
  ptr.distanceTravelled += Math.abs(e.offsetX - ptr.lastX) + Math.abs(e.offsetY - ptr.lastY);

  if (e.button == 0 && ptr.distanceTravelled < 10 && Date.now() - ptr.downTime <= 500) {
    if (Object.keys(layerdict.pointerStates).length == 1) {
      if (layerdict.anotherPointerTapped) {
        // This is the second pointer coming off of a two-finger tap
        resetTransform(layerdict);
      } else {
        // This is just a regular tap
        handleMouseClick(e, layerdict);
      }
      layerdict.anotherPointerTapped = false;
    } else {
      // This is the first finger coming off of what could become a two-finger tap
      layerdict.anotherPointerTapped = true;
    }
  } else {
    if (!settings.redrawOnDrag) {
      redrawCanvas(layerdict);
    }
    layerdict.anotherPointerTapped = false;
  }

  delete layerdict.pointerStates[e.pointerId];
}

function handlePointerMove(e, layerdict) {
  if (!layerdict.pointerStates.hasOwnProperty(e.pointerId)) {
    return;
  }
  e.preventDefault();
  e.stopPropagation();

  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  var thisPtr = layerdict.pointerStates[e.pointerId];

  var dx = e.offsetX - thisPtr.lastX;
  var dy = e.offsetY - thisPtr.lastY;

  // If this number is low on pointer up, we count the action as a click
  thisPtr.distanceTravelled += Math.abs(dx) + Math.abs(dy);

  if (Object.keys(layerdict.pointerStates).length == 1) {
    // This is a simple drag
    layerdict.transform.panx += devicePixelRatio * dx / layerdict.transform.zoom;
    layerdict.transform.pany += devicePixelRatio * dy / layerdict.transform.zoom;
  } else if (Object.keys(layerdict.pointerStates).length == 2) {
    var otherPtr = Object.values(layerdict.pointerStates).filter((ptr) => ptr != thisPtr)[0];

    var oldDist = Math.sqrt(Math.pow(thisPtr.lastX - otherPtr.lastX, 2) + Math.pow(thisPtr.lastY - otherPtr.lastY, 2));
    var newDist = Math.sqrt(Math.pow(e.offsetX - otherPtr.lastX, 2) + Math.pow(e.offsetY - otherPtr.lastY, 2));

    var scaleFactor = newDist / oldDist;

    if (scaleFactor != NaN) {
      layerdict.transform.zoom *= scaleFactor;

      var zoomd = (1 - scaleFactor) / layerdict.transform.zoom;
      layerdict.transform.panx += devicePixelRatio * otherPtr.lastX * zoomd;
      layerdict.transform.pany += devicePixelRatio * otherPtr.lastY * zoomd;
    }
  }

  thisPtr.lastX = e.offsetX;
  thisPtr.lastY = e.offsetY;

  if (settings.redrawOnDrag) {
    redrawCanvas(layerdict);
  }
}

function handleMouseWheel(e, layerdict) {
  e.preventDefault();
  e.stopPropagation();
  var t = layerdict.transform;
  var wheeldelta = e.deltaY;
  if (e.deltaMode == 1) {
    // FF only, scroll by lines
    wheeldelta *= 30;
  } else if (e.deltaMode == 2) {
    wheeldelta *= 300;
  }
  var m = Math.pow(1.1, -wheeldelta / 40);
  // Limit amount of zoom per tick.
  if (m > 2) {
    m = 2;
  } else if (m < 0.5) {
    m = 0.5;
  }
  t.zoom *= m;
  var zoomd = (1 - m) / t.zoom;
  t.panx += devicePixelRatio * e.offsetX * zoomd;
  t.pany += devicePixelRatio * e.offsetY * zoomd;
  redrawCanvas(layerdict);
}

function addMouseHandlers(div, layerdict) {
  div.addEventListener("pointerdown", function(e) {
    handlePointerDown(e, layerdict);
  });
  div.addEventListener("pointermove", function(e) {
    handlePointerMove(e, layerdict);
  });
  div.addEventListener("pointerup", function(e) {
    handlePointerUp(e, layerdict);
  });
  var pointerleave = function(e) {
    handlePointerLeave(e, layerdict);
  }
  div.addEventListener("pointercancel", pointerleave);
  div.addEventListener("pointerleave", pointerleave);
  div.addEventListener("pointerout", pointerleave);

  div.onwheel = function(e) {
    handleMouseWheel(e, layerdict);
  }
  for (var element of [div, layerdict.bg, layerdict.fab, layerdict.silk, layerdict.highlight]) {
    element.addEventListener("contextmenu", function(e) {
      e.preventDefault();
    }, false);
  }
}

function setRedrawOnDrag(value) {
  settings.redrawOnDrag = value;
  writeStorage("redrawOnDrag", value);
}

function setBoardRotation(value) {
  settings.boardRotation = value * 5;
  writeStorage("boardRotation", settings.boardRotation);
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  resizeAll();
}

function setOffsetBackRotation(value) {
  settings.offsetBackRotation = value;
  writeStorage("offsetBackRotation", value);
  resizeAll();
}

function initRender() {
  allcanvas = {
    front: {
      transform: {
        x: 0,
        y: 0,
        s: 1,
        panx: 0,
        pany: 0,
        zoom: 1,
      },
      pointerStates: {},
      anotherPointerTapped: false,
      bg: document.getElementById("F_bg"),
      fab: document.getElementById("F_fab"),
      silk: document.getElementById("F_slk"),
      highlight: document.getElementById("F_hl"),
      layer: "F",
    },
    back: {
      transform: {
        x: 0,
        y: 0,
        s: 1,
        panx: 0,
        pany: 0,
        zoom: 1,
      },
      pointerStates: {},
      anotherPointerTapped: false,
      bg: document.getElementById("B_bg"),
      fab: document.getElementById("B_fab"),
      silk: document.getElementById("B_slk"),
      highlight: document.getElementById("B_hl"),
      layer: "B",
    }
  };
  addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
  addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
}

///////////////////////////////////////////////

///////////////////////////////////////////////
/*
 * Table reordering via Drag'n'Drop
 * Inspired by: https://htmldom.dev/drag-and-drop-table-column
 */

function setBomHandlers() {

  const bom = document.getElementById('bomtable');

  let dragName;
  let placeHolderElements;
  let draggingElement;
  let forcePopulation;
  let xOffset;
  let yOffset;
  let wasDragged;

  const mouseUpHandler = function(e) {
    // Delete dragging element
    draggingElement.remove();

    // Make BOM selectable again
    bom.style.removeProperty("userSelect");

    // Remove listeners
    document.removeEventListener('mousemove', mouseMoveHandler);
    document.removeEventListener('mouseup', mouseUpHandler);

    if (wasDragged) {
      // Redraw whole BOM
      populateBomTable();
    }
  }

  const mouseMoveHandler = function(e) {
    // Notice the dragging
    wasDragged = true;

    // Make the dragged element visible
    draggingElement.style.removeProperty("display");

    // Set elements position to mouse position
    draggingElement.style.left = `${e.screenX - xOffset}px`;
    draggingElement.style.top = `${e.screenY - yOffset}px`;

    // Forced redrawing of BOM table
    if (forcePopulation) {
      forcePopulation = false;
      // Copy array
      phe = Array.from(placeHolderElements);
      // populate BOM table again
      populateBomHeader(dragName, phe);
      populateBomBody(dragName, phe);
    }

    // Set up array of hidden columns
    var hiddenColumns = Array.from(settings.hiddenColumns);
    // In the ungrouped mode, quantity don't exist
    if (settings.bommode === "ungrouped")
      hiddenColumns.push("Quantity");
    // If no checkbox fields can be found, we consider them hidden
    if (settings.checkboxes.length == 0)
      hiddenColumns.push("checkboxes");

    // Get table headers and group them into checkboxes, extrafields and normal headers
    const bh = document.getElementById("bomhead");
    headers = Array.from(bh.querySelectorAll("th"))
    headers.shift() // numCol is not part of the columnOrder
    headerGroups = []
    lastCompoundClass = null;
    for (i = 0; i < settings.columnOrder.length; i++) {
      cElem = settings.columnOrder[i];
      if (hiddenColumns.includes(cElem)) {
        // Hidden columns appear as a dummy element
        headerGroups.push([]);
        continue;
      }
      elem = headers.filter(e => getColumnOrderName(e) === cElem)[0];
      if (elem.classList.contains("bom-checkbox")) {
        if (lastCompoundClass === "bom-checkbox") {
          cbGroup = headerGroups.pop();
          cbGroup.push(elem);
          headerGroups.push(cbGroup);
        } else {
          lastCompoundClass = "bom-checkbox";
          headerGroups.push([elem])
        }
      } else {
        headerGroups.push([elem])
      }
    }

    // Copy settings.columnOrder
    var columns = Array.from(settings.columnOrder)

    // Set up array with indices of hidden columns
    var hiddenIndices = hiddenColumns.map(e => settings.columnOrder.indexOf(e));
    var dragIndex = columns.indexOf(dragName);
    var swapIndex = dragIndex;
    var swapDone = false;

    // Check if the current dragged element is swapable with the left or right element
    if (dragIndex > 0) {
      // Get left headers boundingbox
      swapIndex = dragIndex - 1;
      while (hiddenIndices.includes(swapIndex) && swapIndex > 0)
        swapIndex--;
      if (!hiddenIndices.includes(swapIndex)) {
        box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
        if (e.clientX < box.left + window.scrollX + (box.width / 2)) {
          swapElement = columns[dragIndex];
          columns.splice(dragIndex, 1);
          columns.splice(swapIndex, 0, swapElement);
          forcePopulation = true;
          swapDone = true;
        }
      }
    }
    if ((!swapDone) && dragIndex < headerGroups.length - 1) {
      // Get right headers boundingbox
      swapIndex = dragIndex + 1;
      while (hiddenIndices.includes(swapIndex))
        swapIndex++;
      if (swapIndex < headerGroups.length) {
        box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
        if (e.clientX > box.left + window.scrollX + (box.width / 2)) {
          swapElement = columns[dragIndex];
          columns.splice(dragIndex, 1);
          columns.splice(swapIndex, 0, swapElement);
          forcePopulation = true;
          swapDone = true;
        }
      }
    }

    // Write back change to storage
    if (swapDone) {
      settings.columnOrder = columns
      writeStorage("columnOrder", JSON.stringify(columns));
    }

  }

  const mouseDownHandler = function(e) {
    var target = e.target;
    if (target.tagName.toLowerCase() != "td")
      target = target.parentElement;

    // Used to check if a dragging has ever happened
    wasDragged = false;

    // Create new element which will be displayed as the dragged column
    draggingElement = document.createElement("div")
    draggingElement.classList.add("dragging");
    draggingElement.style.display = "none";
    draggingElement.style.position = "absolute";
    draggingElement.style.overflow = "hidden";

    // Get bomhead and bombody elements
    const bh = document.getElementById("bomhead");
    const bb = document.getElementById("bombody");

    // Get all compound headers for the current column
    var compoundHeaders;
    if (target.classList.contains("bom-checkbox")) {
      compoundHeaders = Array.from(bh.querySelectorAll("th.bom-checkbox"));
    } else {
      compoundHeaders = [target];
    }

    // Create new table which will display the column
    var newTable = document.createElement("table");
    newTable.classList.add("bom");
    newTable.style.background = "white";
    draggingElement.append(newTable);

    // Create new header element
    var newHeader = document.createElement("thead");
    newTable.append(newHeader);

    // Set up array for storing all placeholder elements
    placeHolderElements = [];

    // Add all compound headers to the new thead element and placeholders
    compoundHeaders.forEach(function(h) {
      clone = cloneElementWithDimensions(h);
      newHeader.append(clone);
      placeHolderElements.push(clone);
    });

    // Create new body element
    var newBody = document.createElement("tbody");
    newTable.append(newBody);

    // Get indices for compound headers
    var idxs = compoundHeaders.map(e => getBomTableHeaderIndex(e));

    // For each row in the BOM body...
    var rows = bb.querySelectorAll("tr");
    rows.forEach(function(row) {
      // ..get the cells for the compound column
      const tds = row.querySelectorAll("td");
      var copytds = idxs.map(i => tds[i]);
      // Add them to the new element and the placeholders
      var newRow = document.createElement("tr");
      copytds.forEach(function(td) {
        clone = cloneElementWithDimensions(td);
        newRow.append(clone);
        placeHolderElements.push(clone);
      });
      newBody.append(newRow);
    });

    // Compute width for compound header
    var width = compoundHeaders.reduce((acc, x) => acc + x.clientWidth, 0);
    draggingElement.style.width = `${width}px`;

    // Insert the new dragging element and disable selection on BOM
    bom.insertBefore(draggingElement, null);
    bom.style.userSelect = "none";

    // Determine the mouse position offset
    xOffset = e.screenX - compoundHeaders.reduce((acc, x) => Math.min(acc, x.offsetLeft), compoundHeaders[0].offsetLeft);
    yOffset = e.screenY - compoundHeaders[0].offsetTop;

    // Get name for the column in settings.columnOrder
    dragName = getColumnOrderName(target);

    // Change text and class for placeholder elements
    placeHolderElements = placeHolderElements.map(function(e) {
      newElem = cloneElementWithDimensions(e);
      newElem.textContent = "";
      newElem.classList.add("placeholder");
      return newElem;
    });

    // On next mouse move, the whole BOM needs to be redrawn to show the placeholders
    forcePopulation = true;

    // Add listeners for move and up on mouse
    document.addEventListener('mousemove', mouseMoveHandler);
    document.addEventListener('mouseup', mouseUpHandler);
  }

  // In netlist mode, there is nothing to reorder
  if (settings.bommode === "netlist")
    return;

  // Add mouseDownHandler to every column except the numCol
  bom.querySelectorAll("th")
    .forEach(function(head) {
      if (!head.classList.contains("numCol")) {
        head.onmousedown = mouseDownHandler;
      }
    });

}

function getBoundingClientRectFromMultiple(elements) {
  var elems = Array.from(elements);

  if (elems.length == 0)
    return null;

  var box = elems.shift()
    .getBoundingClientRect();

  elems.forEach(function(elem) {
    var elembox = elem.getBoundingClientRect();
    box.left = Math.min(elembox.left, box.left);
    box.top = Math.min(elembox.top, box.top);
    box.width += elembox.width;
    box.height = Math.max(elembox.height, box.height);
  });

  return box;
}

function cloneElementWithDimensions(elem) {
  var newElem = elem.cloneNode(true);
  newElem.style.height = window.getComputedStyle(elem).height;
  newElem.style.width = window.getComputedStyle(elem).width;
  return newElem;
}

function getBomTableHeaderIndex(elem) {
  const bh = document.getElementById('bomhead');
  const ths = Array.from(bh.querySelectorAll("th"));
  return ths.indexOf(elem);
}

function getColumnOrderName(elem) {
  var cname = elem.getAttribute("col_name");
  if (cname === "bom-checkbox")
    return "checkboxes";
  else
    return cname;
}

function resizableGrid(tablehead) {
  var cols = tablehead.firstElementChild.children;
  var rowWidth = tablehead.offsetWidth;

  for (var i = 1; i < cols.length; i++) {
    if (cols[i].classList.contains("bom-checkbox"))
      continue;
    cols[i].style.width = ((cols[i].clientWidth - paddingDiff(cols[i])) * 100 / rowWidth) + '%';
  }

  for (var i = 1; i < cols.length - 1; i++) {
    var div = document.createElement('div');
    div.className = "column-width-handle";
    cols[i].appendChild(div);
    setListeners(div);
  }

  function setListeners(div) {
    var startX, curCol, nxtCol, curColWidth, nxtColWidth, rowWidth;

    div.addEventListener('mousedown', function(e) {
      e.preventDefault();
      e.stopPropagation();

      curCol = e.target.parentElement;
      nxtCol = curCol.nextElementSibling;
      startX = e.pageX;

      var padding = paddingDiff(curCol);

      rowWidth = curCol.parentElement.offsetWidth;
      curColWidth = curCol.clientWidth - padding;
      nxtColWidth = nxtCol.clientWidth - padding;
    });

    document.addEventListener('mousemove', function(e) {
      if (startX) {
        var diffX = e.pageX - startX;
        diffX = -Math.min(-diffX, curColWidth - 20);
        diffX = Math.min(diffX, nxtColWidth - 20);

        curCol.style.width = ((curColWidth + diffX) * 100 / rowWidth) + '%';
        nxtCol.style.width = ((nxtColWidth - diffX) * 100 / rowWidth) + '%';
        console.log(`${curColWidth + nxtColWidth} ${(curColWidth + diffX) * 100 / rowWidth + (nxtColWidth - diffX) * 100 / rowWidth}`);
      }
    });

    document.addEventListener('mouseup', function(e) {
      curCol = undefined;
      nxtCol = undefined;
      startX = undefined;
      nxtColWidth = undefined;
      curColWidth = undefined
    });
  }

  function paddingDiff(col) {

    if (getStyleVal(col, 'box-sizing') == 'border-box') {
      return 0;
    }

    var padLeft = getStyleVal(col, 'padding-left');
    var padRight = getStyleVal(col, 'padding-right');
    return (parseInt(padLeft) + parseInt(padRight));

  }

  function getStyleVal(elm, css) {
    return (window.getComputedStyle(elm, null).getPropertyValue(css))
  }
}

///////////////////////////////////////////////

///////////////////////////////////////////////
/* DOM manipulation and misc code */

var bomsplit;
var canvassplit;
var initDone = false;
var bomSortFunction = null;
var currentSortColumn = null;
var currentSortOrder = null;
var currentHighlightedRowId;
var highlightHandlers = [];
var footprintIndexToHandler = {};
var netsToHandler = {};
var markedFootprints = new Set();
var highlightedFootprints = [];
var highlightedNet = null;
var lastClicked;

function dbg(html) {
  dbgdiv.innerHTML = html;
}

function redrawIfInitDone() {
  if (initDone) {
    redrawCanvas(allcanvas.front);
    redrawCanvas(allcanvas.back);
  }
}

function padsVisible(value) {
  writeStorage("padsVisible", value);
  settings.renderPads = value;
  redrawIfInitDone();
}

function referencesVisible(value) {
  writeStorage("referencesVisible", value);
  settings.renderReferences = value;
  redrawIfInitDone();
}

function valuesVisible(value) {
  writeStorage("valuesVisible", value);
  settings.renderValues = value;
  redrawIfInitDone();
}

function tracksVisible(value) {
  writeStorage("tracksVisible", value);
  settings.renderTracks = value;
  redrawIfInitDone();
}

function zonesVisible(value) {
  writeStorage("zonesVisible", value);
  settings.renderZones = value;
  redrawIfInitDone();
}

function dnpOutline(value) {
  writeStorage("dnpOutline", value);
  settings.renderDnpOutline = value;
  redrawIfInitDone();
}

function setDarkMode(value) {
  if (value) {
    topmostdiv.classList.add("dark");
  } else {
    topmostdiv.classList.remove("dark");
  }
  writeStorage("darkmode", value);
  settings.darkMode = value;
  redrawIfInitDone();
  if (initDone) {
    populateBomTable();
  }
}

function setShowBOMColumn(field, value) {
  if (field === "references") {
    var rl = document.getElementById("reflookup");
    rl.disabled = !value;
    if (!value) {
      rl.value = "";
      updateRefLookup("");
    }
  }

  var n = settings.hiddenColumns.indexOf(field);
  if (value) {
    if (n != -1) {
      settings.hiddenColumns.splice(n, 1);
    }
  } else {
    if (n == -1) {
      settings.hiddenColumns.push(field);
    }
  }

  writeStorage("hiddenColumns", JSON.stringify(settings.hiddenColumns));

  if (initDone) {
    populateBomTable();
  }

  redrawIfInitDone();
}


function setFullscreen(value) {
  if (value) {
    document.documentElement.requestFullscreen();
  } else {
    document.exitFullscreen();
  }
}

function fabricationVisible(value) {
  writeStorage("fabricationVisible", value);
  settings.renderFabrication = value;
  redrawIfInitDone();
}

function silkscreenVisible(value) {
  writeStorage("silkscreenVisible", value);
  settings.renderSilkscreen = value;
  redrawIfInitDone();
}

function setHighlightPin1(value) {
  writeStorage("highlightpin1", value);
  settings.highlightpin1 = value;
  redrawIfInitDone();
}

function getStoredCheckboxRefs(checkbox) {
  function convert(ref) {
    var intref = parseInt(ref);
    if (isNaN(intref)) {
      for (var i = 0; i < pcbdata.footprints.length; i++) {
        if (pcbdata.footprints[i].ref == ref) {
          return i;
        }
      }
      return -1;
    } else {
      return intref;
    }
  }
  if (!(checkbox in settings.checkboxStoredRefs)) {
    var val = readStorage("checkbox_" + checkbox);
    settings.checkboxStoredRefs[checkbox] = val ? val : "";
  }
  if (!settings.checkboxStoredRefs[checkbox]) {
    return new Set();
  } else {
    return new Set(settings.checkboxStoredRefs[checkbox].split(",").map(r => convert(r)).filter(a => a >= 0));
  }
}

function getCheckboxState(checkbox, references) {
  var storedRefsSet = getStoredCheckboxRefs(checkbox);
  var currentRefsSet = new Set(references.map(r => r[1]));
  // Get difference of current - stored
  var difference = new Set(currentRefsSet);
  for (ref of storedRefsSet) {
    difference.delete(ref);
  }
  if (difference.size == 0) {
    // All the current refs are stored
    return "checked";
  } else if (difference.size == currentRefsSet.size) {
    // None of the current refs are stored
    return "unchecked";
  } else {
    // Some of the refs are stored
    return "indeterminate";
  }
}

function setBomCheckboxState(checkbox, element, references) {
  var state = getCheckboxState(checkbox, references);
  element.checked = (state == "checked");
  element.indeterminate = (state == "indeterminate");
}

function createCheckboxChangeHandler(checkbox, references, row) {
  return function () {
    refsSet = getStoredCheckboxRefs(checkbox);
    var markWhenChecked = settings.markWhenChecked == checkbox;
    eventArgs = {
      checkbox: checkbox,
      refs: references,
    }
    if (this.checked) {
      // checkbox ticked
      for (var ref of references) {
        refsSet.add(ref[1]);
      }
      if (markWhenChecked) {
        row.classList.add("checked");
        for (var ref of references) {
          markedFootprints.add(ref[1]);
        }
        drawHighlights();
      }
      eventArgs.state = 'checked';
    } else {
      // checkbox unticked
      for (var ref of references) {
        refsSet.delete(ref[1]);
      }
      if (markWhenChecked) {
        row.classList.remove("checked");
        for (var ref of references) {
          markedFootprints.delete(ref[1]);
        }
        drawHighlights();
      }
      eventArgs.state = 'unchecked';
    }
    settings.checkboxStoredRefs[checkbox] = [...refsSet].join(",");
    writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
    updateCheckboxStats(checkbox);
    EventHandler.emitEvent(IBOM_EVENT_TYPES.CHECKBOX_CHANGE_EVENT, eventArgs);
  }
}

function clearHighlightedFootprints() {
  if (currentHighlightedRowId) {
    document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
    currentHighlightedRowId = null;
    highlightedFootprints = [];
    highlightedNet = null;
  }
}

function createRowHighlightHandler(rowid, refs, net) {
  return function () {
    if (currentHighlightedRowId) {
      if (currentHighlightedRowId == rowid) {
        return;
      }
      document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
    }
    document.getElementById(rowid).classList.add("highlighted");
    currentHighlightedRowId = rowid;
    highlightedFootprints = refs ? refs.map(r => r[1]) : [];
    highlightedNet = net;
    drawHighlights();
    EventHandler.emitEvent(
      IBOM_EVENT_TYPES.HIGHLIGHT_EVENT, {
      rowid: rowid,
      refs: refs,
      net: net
    });
  }
}

function updateNetColors() {
  writeStorage("netColors", JSON.stringify(settings.netColors));
  redrawIfInitDone();
}

function netColorChangeHandler(net) {
  return (event) => {
    settings.netColors[net] = event.target.value;
    updateNetColors();
  }
}

function netColorRightClick(net) {
  return (event) => {
    if(event.button == 2) {
      event.preventDefault();
      event.stopPropagation();

      var style = getComputedStyle(topmostdiv);
      var defaultNetColor = style.getPropertyValue('--track-color').trim();
      event.target.value = defaultNetColor;
      delete settings.netColors[net];
      updateNetColors();
    }
  }
}

function entryMatches(entry) {
  if (settings.bommode == "netlist") {
    // entry is just a net name
    return entry.toLowerCase().indexOf(filter) >= 0;
  }
  // check refs
  if (!settings.hiddenColumns.includes("references")) {
    for (var ref of entry) {
      if (ref[0].toLowerCase().indexOf(filter) >= 0) {
        return true;
      }
    }
  }
  // check fields
  for (var i in config.fields) {
    var f = config.fields[i];
    if (!settings.hiddenColumns.includes(f)) {
      for (var ref of entry) {
        if (String(pcbdata.bom.fields[ref[1]][i]).toLowerCase().indexOf(filter) >= 0) {
          return true;
        }
      }
    }
  }
  return false;
}

function findRefInEntry(entry) {
  return entry.filter(r => r[0].toLowerCase() == reflookup);
}

function highlightFilter(s) {
  if (!filter) {
    return s;
  }
  var parts = s.toLowerCase().split(filter);
  if (parts.length == 1) {
    return s;
  }
  var r = "";
  var pos = 0;
  for (var i in parts) {
    if (i > 0) {
      r += '<mark class="highlight">' +
        s.substring(pos, pos + filter.length) +
        '</mark>';
      pos += filter.length;
    }
    r += s.substring(pos, pos + parts[i].length);
    pos += parts[i].length;
  }
  return r;
}

function checkboxSetUnsetAllHandler(checkboxname) {
  return function () {
    var checkboxnum = 0;
    while (checkboxnum < settings.checkboxes.length &&
      settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
      checkboxnum++;
    }
    if (checkboxnum >= settings.checkboxes.length) {
      return;
    }
    var allset = true;
    var checkbox;
    var row;
    for (row of bombody.childNodes) {
      checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
      if (!checkbox.checked || checkbox.indeterminate) {
        allset = false;
        break;
      }
    }
    for (row of bombody.childNodes) {
      checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
      checkbox.checked = !allset;
      checkbox.indeterminate = false;
      checkbox.onchange();
    }
  }
}

function createColumnHeader(name, cls, comparator, is_checkbox = false) {
  var th = document.createElement("TH");
  th.innerHTML = name;
  th.classList.add(cls);
  if (is_checkbox)
    th.setAttribute("col_name", "bom-checkbox");
  else
    th.setAttribute("col_name", name);
  var span = document.createElement("SPAN");
  span.classList.add("sortmark");
  span.classList.add("none");
  th.appendChild(span);
  var spacer = document.createElement("div");
  spacer.className = "column-spacer";
  th.appendChild(spacer);
  spacer.onclick = function () {
    if (currentSortColumn && th !== currentSortColumn) {
      // Currently sorted by another column
      currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
      currentSortColumn.childNodes[1].classList.add("none");
      currentSortColumn = null;
      currentSortOrder = null;
    }
    if (currentSortColumn && th === currentSortColumn) {
      // Already sorted by this column
      if (currentSortOrder == "asc") {
        // Sort by this column, descending order
        bomSortFunction = function (a, b) {
          return -comparator(a, b);
        }
        currentSortColumn.childNodes[1].classList.remove("asc");
        currentSortColumn.childNodes[1].classList.add("desc");
        currentSortOrder = "desc";
      } else {
        // Unsort
        bomSortFunction = null;
        currentSortColumn.childNodes[1].classList.remove("desc");
        currentSortColumn.childNodes[1].classList.add("none");
        currentSortColumn = null;
        currentSortOrder = null;
      }
    } else {
      // Sort by this column, ascending order
      bomSortFunction = comparator;
      currentSortColumn = th;
      currentSortColumn.childNodes[1].classList.remove("none");
      currentSortColumn.childNodes[1].classList.add("asc");
      currentSortOrder = "asc";
    }
    populateBomBody();
  }
  if (is_checkbox) {
    spacer.onclick = fancyDblClickHandler(
      spacer, spacer.onclick, checkboxSetUnsetAllHandler(name));
  }
  return th;
}

function populateBomHeader(placeHolderColumn = null, placeHolderElements = null) {
  while (bomhead.firstChild) {
    bomhead.removeChild(bomhead.firstChild);
  }
  var tr = document.createElement("TR");
  var th = document.createElement("TH");
  th.classList.add("numCol");

  var vismenu = document.createElement("div");
  vismenu.id = "vismenu";
  vismenu.classList.add("menu");

  var visbutton = document.createElement("div");
  visbutton.classList.add("visbtn");
  visbutton.classList.add("hideonprint");

  var viscontent = document.createElement("div");
  viscontent.classList.add("menu-content");
  viscontent.id = "vismenu-content";

  settings.columnOrder.forEach(column => {
    if (typeof column !== "string")
      return;

    // Skip empty columns
    if (column === "checkboxes" && settings.checkboxes.length == 0)
      return;
    else if (column === "Quantity" && settings.bommode == "ungrouped")
      return;

    var label = document.createElement("label");
    label.classList.add("menu-label");

    var input = document.createElement("input");
    input.classList.add("visibility_checkbox");
    input.type = "checkbox";
    input.onchange = function (e) {
      setShowBOMColumn(column, e.target.checked)
    };
    input.checked = !(settings.hiddenColumns.includes(column));

    label.appendChild(input);
    if (column.length > 0)
      label.append(column[0].toUpperCase() + column.slice(1));

    viscontent.appendChild(label);
  });

  viscontent.childNodes[0].classList.add("menu-label-top");

  vismenu.appendChild(visbutton);
  if (settings.bommode != "netlist") {
    vismenu.appendChild(viscontent);
    th.appendChild(vismenu);
  }
  tr.appendChild(th);

  var checkboxCompareClosure = function (checkbox) {
    return (a, b) => {
      var stateA = getCheckboxState(checkbox, a);
      var stateB = getCheckboxState(checkbox, b);
      if (stateA > stateB) return -1;
      if (stateA < stateB) return 1;
      return 0;
    }
  }
  var stringFieldCompareClosure = function (fieldIndex) {
    return (a, b) => {
      var fa = pcbdata.bom.fields[a[0][1]][fieldIndex];
      var fb = pcbdata.bom.fields[b[0][1]][fieldIndex];
      if (fa != fb) return fa > fb ? 1 : -1;
      else return 0;
    }
  }
  var referenceRegex = /(?<prefix>[^0-9]+)(?<number>[0-9]+)/;
  var compareRefs = (a, b) => {
    var ra = referenceRegex.exec(a);
    var rb = referenceRegex.exec(b);
    if (ra === null || rb === null) {
      if (a != b) return a > b ? 1 : -1;
      return 0;
    } else {
      if (ra.groups.prefix != rb.groups.prefix) {
        return ra.groups.prefix > rb.groups.prefix ? 1 : -1;
      }
      if (ra.groups.number != rb.groups.number) {
        return parseInt(ra.groups.number) > parseInt(rb.groups.number) ? 1 : -1;
      }
      return 0;
    }
  }
  if (settings.bommode == "netlist") {
    tr.appendChild(createColumnHeader("Net name", "bom-netname", (a, b) => {
      if (a > b) return -1;
      if (a < b) return 1;
      return 0;
    }));
    tr.appendChild(createColumnHeader("Color", "bom-color", (a, b) => {
      return 0;
    }));
  } else {
    // Filter hidden columns
    var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
    var valueIndex = config.fields.indexOf("Value");
    var footprintIndex = config.fields.indexOf("Footprint");
    columns.forEach((column) => {
      if (column === placeHolderColumn) {
        var n = 1;
        if (column === "checkboxes")
          n = settings.checkboxes.length;
        for (i = 0; i < n; i++) {
          td = placeHolderElements.shift();
          tr.appendChild(td);
        }
        return;
      } else if (column === "checkboxes") {
        for (var checkbox of settings.checkboxes) {
          th = createColumnHeader(
            checkbox, "bom-checkbox", checkboxCompareClosure(checkbox), true);
          tr.appendChild(th);
        }
      } else if (column === "References") {
        tr.appendChild(createColumnHeader("References", "references", (a, b) => {
          var i = 0;
          while (i < a.length && i < b.length) {
            if (a[i] != b[i]) return compareRefs(a[i][0], b[i][0]);
            i++;
          }
          return a.length - b.length;
        }));
      } else if (column === "Value") {
        tr.appendChild(createColumnHeader("Value", "value", (a, b) => {
          var ra = a[0][1], rb = b[0][1];
          return valueCompare(
            pcbdata.bom.parsedValues[ra], pcbdata.bom.parsedValues[rb],
            pcbdata.bom.fields[ra][valueIndex], pcbdata.bom.fields[rb][valueIndex]);
        }));
        return;
      } else if (column === "Footprint") {
        tr.appendChild(createColumnHeader(
          "Footprint", "footprint", stringFieldCompareClosure(footprintIndex)));
      } else if (column === "Quantity" && settings.bommode == "grouped") {
        tr.appendChild(createColumnHeader("Quantity", "quantity", (a, b) => {
          return a.length - b.length;
        }));
      } else {
        // Other fields
        var i = config.fields.indexOf(column);
        if (i < 0)
          return;
        tr.appendChild(createColumnHeader(
          column, `field${i + 1}`, stringFieldCompareClosure(i)));
      }
    });
  }
  bomhead.appendChild(tr);
}

function populateBomBody(placeholderColumn = null, placeHolderElements = null) {
  const urlRegex = /^(https?:\/\/[^\s\/$.?#][^\s]*|file:\/\/([a-zA-Z]:|\/)[^\x00]+)$/;
  while (bom.firstChild) {
    bom.removeChild(bom.firstChild);
  }
  highlightHandlers = [];
  footprintIndexToHandler = {};
  netsToHandler = {};
  currentHighlightedRowId = null;
  var first = true;
  var style = getComputedStyle(topmostdiv);
  var defaultNetColor = style.getPropertyValue('--track-color').trim();
  if (settings.bommode == "netlist") {
    bomtable = pcbdata.nets.slice();
  } else {
    switch (settings.canvaslayout) {
      case 'F':
        bomtable = pcbdata.bom.F.slice();
        break;
      case 'FB':
        bomtable = pcbdata.bom.both.slice();
        break;
      case 'B':
        bomtable = pcbdata.bom.B.slice();
        break;
    }
    if (settings.bommode == "ungrouped") {
      // expand bom table
      expandedTable = []
      for (var bomentry of bomtable) {
        for (var ref of bomentry) {
          expandedTable.push([ref]);
        }
      }
      bomtable = expandedTable;
    }
  }
  if (bomSortFunction) {
    bomtable = bomtable.sort(bomSortFunction);
  }
  for (var i in bomtable) {
    var bomentry = bomtable[i];
    if (filter && !entryMatches(bomentry)) {
      continue;
    }
    var references = null;
    var netname = null;
    var tr = document.createElement("TR");
    var td = document.createElement("TD");
    var rownum = +i + 1;
    tr.id = "bomrow" + rownum;
    td.textContent = rownum;
    tr.appendChild(td);
    if (settings.bommode == "netlist") {
      netname = bomentry;
      td = document.createElement("TD");
      td.innerHTML = highlightFilter(netname ? netname : "&lt;no net&gt;");
      tr.appendChild(td);
      var color = settings.netColors[netname] || defaultNetColor;
      td = document.createElement("TD");
      var colorBox = document.createElement("INPUT");
      colorBox.type = "color";
      colorBox.value = color;
      colorBox.onchange = netColorChangeHandler(netname);
      colorBox.onmouseup = netColorRightClick(netname);
      colorBox.oncontextmenu = (e) => e.preventDefault();
      td.appendChild(colorBox);
      td.classList.add("color-column");
      tr.appendChild(td);
    } else {
      if (reflookup) {
        references = findRefInEntry(bomentry);
        if (references.length == 0) {
          continue;
        }
      } else {
        references = bomentry;
      }
      // Filter hidden columns
      var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
      columns.forEach((column) => {
        if (column === placeholderColumn) {
          var n = 1;
          if (column === "checkboxes")
            n = settings.checkboxes.length;
          for (i = 0; i < n; i++) {
            td = placeHolderElements.shift();
            tr.appendChild(td);
          }
          return;
        } else if (column === "checkboxes") {
          for (var checkbox of settings.checkboxes) {
            if (checkbox) {
              td = document.createElement("TD");
              var input = document.createElement("input");
              input.type = "checkbox";
              input.onchange = createCheckboxChangeHandler(checkbox, references, tr);
              setBomCheckboxState(checkbox, input, references);
              if (input.checked && settings.markWhenChecked == checkbox) {
                tr.classList.add("checked");
              }
              td.appendChild(input);
              tr.appendChild(td);
            }
          }
        } else if (column === "References") {
          td = document.createElement("TD");
          td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
          tr.appendChild(td);
        } else if (column === "Quantity" && settings.bommode == "grouped") {
          // Quantity
          td = document.createElement("TD");
          td.textContent = references.length;
          tr.appendChild(td);
        } else {
          // All the other fields
          var field_index = config.fields.indexOf(column)
          if (field_index < 0)
            return;
          var valueSet = new Set();
          references.map(r => r[1]).forEach((id) => valueSet.add(pcbdata.bom.fields[id][field_index]));
          td = document.createElement("TD");
          var output = new Array();
          for (let item of valueSet) {
            const visible = highlightFilter(String(item));
            if (typeof item === 'string' && item.match(urlRegex)) {
              output.push(`<a href="${item}" target="_blank">${visible}</a>`);
            } else {
              output.push(visible);
            }
          }
          td.innerHTML = output.join(", ");
          tr.appendChild(td);
        }
      });
    }
    bom.appendChild(tr);
    var handler = createRowHighlightHandler(tr.id, references, netname);
    tr.onmousemove = handler;
    highlightHandlers.push({
      id: tr.id,
      handler: handler,
    });
    if (references !== null) {
      for (var refIndex of references.map(r => r[1])) {
        footprintIndexToHandler[refIndex] = handler;
      }
    }
    if (netname !== null) {
      netsToHandler[netname] = handler;
    }
    if ((filter || reflookup) && first) {
      handler();
      first = false;
    }
  }
  EventHandler.emitEvent(
    IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, {
    filter: filter,
    reflookup: reflookup,
    checkboxes: settings.checkboxes,
    bommode: settings.bommode,
  });
}

function highlightPreviousRow() {
  if (!currentHighlightedRowId) {
    highlightHandlers[highlightHandlers.length - 1].handler();
  } else {
    if (highlightHandlers.length > 1 &&
      highlightHandlers[0].id == currentHighlightedRowId) {
      highlightHandlers[highlightHandlers.length - 1].handler();
    } else {
      for (var i = 0; i < highlightHandlers.length - 1; i++) {
        if (highlightHandlers[i + 1].id == currentHighlightedRowId) {
          highlightHandlers[i].handler();
          break;
        }
      }
    }
  }
  smoothScrollToRow(currentHighlightedRowId);
}

function highlightNextRow() {
  if (!currentHighlightedRowId) {
    highlightHandlers[0].handler();
  } else {
    if (highlightHandlers.length > 1 &&
      highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) {
      highlightHandlers[0].handler();
    } else {
      for (var i = 1; i < highlightHandlers.length; i++) {
        if (highlightHandlers[i - 1].id == currentHighlightedRowId) {
          highlightHandlers[i].handler();
          break;
        }
      }
    }
  }
  smoothScrollToRow(currentHighlightedRowId);
}

function populateBomTable() {
  populateBomHeader();
  populateBomBody();
  setBomHandlers();
  resizableGrid(bomhead);
}

function footprintsClicked(footprintIndexes) {
  var lastClickedIndex = footprintIndexes.indexOf(lastClicked);
  for (var i = 1; i <= footprintIndexes.length; i++) {
    var refIndex = footprintIndexes[(lastClickedIndex + i) % footprintIndexes.length];
    if (refIndex in footprintIndexToHandler) {
      lastClicked = refIndex;
      footprintIndexToHandler[refIndex]();
      smoothScrollToRow(currentHighlightedRowId);
      break;
    }
  }
}

function netClicked(net) {
  if (net in netsToHandler) {
    netsToHandler[net]();
    smoothScrollToRow(currentHighlightedRowId);
  } else {
    clearHighlightedFootprints();
    highlightedNet = net;
    drawHighlights();
  }
}

function updateFilter(input) {
  filter = input.toLowerCase();
  populateBomTable();
}

function updateRefLookup(input) {
  reflookup = input.toLowerCase();
  populateBomTable();
}

function changeCanvasLayout(layout) {
  document.getElementById("fl-btn").classList.remove("depressed");
  document.getElementById("fb-btn").classList.remove("depressed");
  document.getElementById("bl-btn").classList.remove("depressed");
  switch (layout) {
    case 'F':
      document.getElementById("fl-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.collapse(1);
      }
      break;
    case 'B':
      document.getElementById("bl-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.collapse(0);
      }
      break;
    default:
      document.getElementById("fb-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.setSizes([50, 50]);
      }
  }
  settings.canvaslayout = layout;
  writeStorage("canvaslayout", layout);
  resizeAll();
  changeBomMode(settings.bommode);
}

function populateMetadata() {
  document.getElementById("title").innerHTML = pcbdata.metadata.title;
  document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision;
  document.getElementById("company").innerHTML = pcbdata.metadata.company;
  document.getElementById("filedate").innerHTML = pcbdata.metadata.date;
  if (pcbdata.metadata.title != "") {
    document.title = pcbdata.metadata.title + " BOM";
  }
  // Calculate board stats
  var fp_f = 0,
    fp_b = 0,
    pads_f = 0,
    pads_b = 0,
    pads_th = 0;
  for (var i = 0; i < pcbdata.footprints.length; i++) {
    if (pcbdata.bom.skipped.includes(i)) continue;
    var mod = pcbdata.footprints[i];
    if (mod.layer == "F") {
      fp_f++;
    } else {
      fp_b++;
    }
    for (var pad of mod.pads) {
      if (pad.type == "th") {
        pads_th++;
      } else {
        if (pad.layers.includes("F")) {
          pads_f++;
        }
        if (pad.layers.includes("B")) {
          pads_b++;
        }
      }
    }
  }
  document.getElementById("stats-components-front").innerHTML = fp_f;
  document.getElementById("stats-components-back").innerHTML = fp_b;
  document.getElementById("stats-components-total").innerHTML = fp_f + fp_b;
  document.getElementById("stats-groups-front").innerHTML = pcbdata.bom.F.length;
  document.getElementById("stats-groups-back").innerHTML = pcbdata.bom.B.length;
  document.getElementById("stats-groups-total").innerHTML = pcbdata.bom.both.length;
  document.getElementById("stats-smd-pads-front").innerHTML = pads_f;
  document.getElementById("stats-smd-pads-back").innerHTML = pads_b;
  document.getElementById("stats-smd-pads-total").innerHTML = pads_f + pads_b;
  document.getElementById("stats-th-pads").innerHTML = pads_th;
  // Update version string
  document.getElementById("github-link").innerHTML = "InteractiveHtmlBom&nbsp;" +
    /^v\d+\.\d+/.exec(pcbdata.ibom_version)[0];
}

function changeBomLayout(layout) {
  document.getElementById("bom-btn").classList.remove("depressed");
  document.getElementById("lr-btn").classList.remove("depressed");
  document.getElementById("tb-btn").classList.remove("depressed");
  switch (layout) {
    case 'bom-only':
      document.getElementById("bom-btn").classList.add("depressed");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      document.getElementById("frontcanvas").style.display = "none";
      document.getElementById("backcanvas").style.display = "none";
      document.getElementById("bot").style.height = "";
      break;
    case 'top-bottom':
      document.getElementById("tb-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("bot").style.height = "calc(100% - 80px)";
      document.getElementById("bomdiv").classList.remove("split-horizontal");
      document.getElementById("canvasdiv").classList.remove("split-horizontal");
      document.getElementById("frontcanvas").classList.add("split-horizontal");
      document.getElementById("backcanvas").classList.add("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        direction: "vertical",
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        onDragEnd: resizeAll
      });
      break;
    case 'left-right':
      document.getElementById("lr-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("bot").style.height = "calc(100% - 80px)";
      document.getElementById("bomdiv").classList.add("split-horizontal");
      document.getElementById("canvasdiv").classList.add("split-horizontal");
      document.getElementById("frontcanvas").classList.remove("split-horizontal");
      document.getElementById("backcanvas").classList.remove("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        direction: "vertical",
        onDragEnd: resizeAll
      });
  }
  settings.bomlayout = layout;
  writeStorage("bomlayout", layout);
  changeCanvasLayout(settings.canvaslayout);
}

function changeBomMode(mode) {
  document.getElementById("bom-grouped-btn").classList.remove("depressed");
  document.getElementById("bom-ungrouped-btn").classList.remove("depressed");
  document.getElementById("bom-netlist-btn").classList.remove("depressed");
  var chkbxs = document.getElementsByClassName("visibility_checkbox");

  switch (mode) {
    case 'grouped':
      document.getElementById("bom-grouped-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = false;
      }
      break;
    case 'ungrouped':
      document.getElementById("bom-ungrouped-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = false;
      }
      break;
    case 'netlist':
      document.getElementById("bom-netlist-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = true;
      }
  }

  writeStorage("bommode", mode);
  if (mode != settings.bommode) {
    settings.bommode = mode;
    bomSortFunction = null;
    currentSortColumn = null;
    currentSortOrder = null;
    clearHighlightedFootprints();
  }
  populateBomTable();
}

function focusFilterField() {
  focusInputField(document.getElementById("filter"));
}

function focusRefLookupField() {
  focusInputField(document.getElementById("reflookup"));
}

function toggleBomCheckbox(bomrowid, checkboxnum) {
  if (!bomrowid || checkboxnum > settings.checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var checkbox = bomrow.childNodes[checkboxnum].childNodes[0];
  checkbox.checked = !checkbox.checked;
  checkbox.indeterminate = false;
  checkbox.onchange();
}

function checkBomCheckbox(bomrowid, checkboxname) {
  var checkboxnum = 0;
  while (checkboxnum < settings.checkboxes.length &&
    settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
    checkboxnum++;
  }
  if (!bomrowid || checkboxnum >= settings.checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var checkbox = bomrow.childNodes[checkboxnum + 1].childNodes[0];
  checkbox.checked = true;
  checkbox.indeterminate = false;
  checkbox.onchange();
}

function setBomCheckboxes(value) {
  writeStorage("bomCheckboxes", value);
  settings.checkboxes = value.split(",").map((e) => e.trim()).filter((e) => e);
  prepCheckboxes();
  populateMarkWhenCheckedOptions();
  setMarkWhenChecked(settings.markWhenChecked);
}

function setMarkWhenChecked(value) {
  writeStorage("markWhenChecked", value);
  settings.markWhenChecked = value;
  markedFootprints.clear();
  for (var ref of (value ? getStoredCheckboxRefs(value) : [])) {
    markedFootprints.add(ref);
  }
  populateBomTable();
  drawHighlights();
}

function prepCheckboxes() {
  var table = document.getElementById("checkbox-stats");
  while (table.childElementCount > 1) {
    table.removeChild(table.lastChild);
  }
  if (settings.checkboxes.length) {
    table.style.display = "";
  } else {
    table.style.display = "none";
  }
  for (var checkbox of settings.checkboxes) {
    var tr = document.createElement("TR");
    var td = document.createElement("TD");
    td.innerHTML = checkbox;
    tr.appendChild(td);
    td = document.createElement("TD");
    td.id = "checkbox-stats-" + checkbox;
    var progressbar = document.createElement("div");
    progressbar.classList.add("bar");
    td.appendChild(progressbar);
    var text = document.createElement("div");
    text.classList.add("text");
    td.appendChild(text);
    tr.appendChild(td);
    table.appendChild(tr);
    updateCheckboxStats(checkbox);
  }
}

function populateMarkWhenCheckedOptions() {
  var container = document.getElementById("markWhenCheckedContainer");

  if (settings.checkboxes.length == 0) {
    container.parentElement.style.display = "none";
    return;
  }

  container.innerHTML = '';
  container.parentElement.style.display = "inline-block";

  function createOption(name, displayName) {
    var id = "markWhenChecked-" + name;

    var div = document.createElement("div");
    div.classList.add("radio-container");

    var input = document.createElement("input");
    input.type = "radio";
    input.name = "markWhenChecked";
    input.value = name;
    input.id = id;
    input.onchange = () => setMarkWhenChecked(name);
    div.appendChild(input);

    // Preserve the selected element when the checkboxes change
    if (name == settings.markWhenChecked) {
      input.checked = true;
    }

    var label = document.createElement("label");
    label.innerHTML = displayName;
    label.htmlFor = id;
    div.appendChild(label);

    container.appendChild(div);
  }
  createOption("", "None");
  for (var checkbox of settings.checkboxes) {
    createOption(checkbox, checkbox);
  }
}

function updateCheckboxStats(checkbox) {
  var checked = getStoredCheckboxRefs(checkbox).size;
  var total = pcbdata.footprints.length - pcbdata.bom.skipped.length;
  var percent = checked * 100.0 / total;
  var td = document.getElementById("checkbox-stats-" + checkbox);
  td.firstChild.style.width = percent + "%";
  td.lastChild.innerHTML = checked + "/" + total + " (" + Math.round(percent) + "%)";
}

function constrain(number, min, max){
  return Math.min(Math.max(parseInt(number), min), max);
}

document.onkeydown = function (e) {
  switch (e.key) {
    case "n":
      if (document.activeElement.type == "text") {
        return;
      }
      if (currentHighlightedRowId !== null) {
        checkBomCheckbox(currentHighlightedRowId, "placed");
        highlightNextRow();
        e.preventDefault();
      }
      break;
    case "ArrowUp":
      highlightPreviousRow();
      e.preventDefault();
      break;
    case "ArrowDown":
      highlightNextRow();
      e.preventDefault();
      break;
    case "ArrowLeft":
    case "ArrowRight":
      if (document.activeElement.type != "text"){
        e.preventDefault();
        let boardRotationElement = document.getElementById("boardRotation")
        settings.boardRotation = parseInt(boardRotationElement.value);  // degrees / 5
        if (e.key == "ArrowLeft"){
            settings.boardRotation += 3;  // 15 degrees
        }
        else{
            settings.boardRotation -= 3;
        }
        settings.boardRotation = constrain(settings.boardRotation, boardRotationElement.min, boardRotationElement.max);
        boardRotationElement.value = settings.boardRotation
        setBoardRotation(settings.boardRotation);
      }
      break;
    default:
      break;
  }
  if (e.altKey) {
    switch (e.key) {
      case "f":
        focusFilterField();
        e.preventDefault();
        break;
      case "r":
        focusRefLookupField();
        e.preventDefault();
        break;
      case "z":
        changeBomLayout("bom-only");
        e.preventDefault();
        break;
      case "x":
        changeBomLayout("left-right");
        e.preventDefault();
        break;
      case "c":
        changeBomLayout("top-bottom");
        e.preventDefault();
        break;
      case "v":
        changeCanvasLayout("F");
        e.preventDefault();
        break;
      case "b":
        changeCanvasLayout("FB");
        e.preventDefault();
        break;
      case "n":
        changeCanvasLayout("B");
        e.preventDefault();
        break;
      default:
        break;
    }
    if (e.key >= '1' && e.key <= '9') {
      toggleBomCheckbox(currentHighlightedRowId, parseInt(e.key));
      e.preventDefault();
    }
  }
}

function hideNetlistButton() {
  document.getElementById("bom-ungrouped-btn").classList.remove("middle-button");
  document.getElementById("bom-ungrouped-btn").classList.add("right-most-button");
  document.getElementById("bom-netlist-btn").style.display = "none";
}

window.onload = function (e) {
  initUtils();
  initRender();
  initStorage();
  initDefaults();
  cleanGutters();
  populateMetadata();
  dbgdiv = document.getElementById("dbg");
  bom = document.getElementById("bombody");
  bomhead = document.getElementById("bomhead");
  filter = "";
  reflookup = "";
  if (!("nets" in pcbdata)) {
    hideNetlistButton();
  }
  initDone = true;
  setBomCheckboxes(document.getElementById("bomCheckboxes").value);
  // Triggers render
  changeBomLayout(settings.bomlayout);

  // Users may leave fullscreen without touching the checkbox. Uncheck.
  document.addEventListener('fullscreenchange', () => {
    if (!document.fullscreenElement)
      document.getElementById('fullscreenCheckbox').checked = false;
  });
}

window.onresize = resizeAll;
window.matchMedia("print").addListener(resizeAll);

///////////////////////////////////////////////

///////////////////////////////////////////////

///////////////////////////////////////////////
  </script>
</head>

<body>

<div id="topmostdiv" class="topmostdiv">
  <div id="top">
    <div style="float: right; height: 100%;">
      <div class="hideonprint menu" style="float: right; top: 8px;">
        <button class="menubtn"></button>
        <div class="menu-content">
          <label class="menu-label menu-label-top" style="width: calc(50% - 18px)">
            <input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
            Dark mode
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label menu-label-top" style="width: calc(50% - 17px); border-left: 0;">
            <input id="fullscreenCheckbox" type="checkbox" onchange="setFullscreen(this.checked)">
            Full Screen
          </label>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="fabricationCheckbox" type="checkbox" checked onchange="fabricationVisible(this.checked)">
            Fab layer
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
            Silkscreen
          </label>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="referencesCheckbox" type="checkbox" checked onchange="referencesVisible(this.checked)">
            References
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="valuesCheckbox" type="checkbox" checked onchange="valuesVisible(this.checked)">
            Values
          </label>
          <div id="tracksAndZonesCheckboxes">
            <label class="menu-label" style="width: calc(50% - 18px)">
              <input id="tracksCheckbox" type="checkbox" checked onchange="tracksVisible(this.checked)">
              Tracks
            </label><!-- This comment eats space! All of it!
            --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
              <input id="zonesCheckbox" type="checkbox" checked onchange="zonesVisible(this.checked)">
              Zones
            </label>
          </div>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="padsCheckbox" type="checkbox" checked onchange="padsVisible(this.checked)">
            Pads
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="dnpOutlineCheckbox" type="checkbox" checked onchange="dnpOutline(this.checked)">
            DNP outlined
          </label>
          <label class="menu-label">
            <input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
            Continuous redraw on drag
          </label>
          <label class="menu-label">
            Highlight first pin
            <form id="highlightpin1">
              <div class="flexbox">
                <label>
                  <input type="radio" name="highlightpin1" value="none" onchange="setHighlightPin1('none')">
                  None
                </label>
                <label>
                  <input type="radio" name="highlightpin1" value="all" onchange="setHighlightPin1('all')">
                  All
                </label>
                <label>
                  <input type="radio" name="highlightpin1" value="selected" onchange="setHighlightPin1('selected')">
                  Selected
                </label>
              </div>
            </form>
          </label>
          <label class="menu-label">
            <span>Board rotation</span>
            <span style="float: right"><span id="rotationDegree">0</span>&#176;</span>
            <input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
          </label>
          <label class="menu-label">
            <input id="offsetBackRotationCheckbox" type="checkbox" onchange="setOffsetBackRotation(this.checked)">
            Offset back rotation
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Bom checkboxes</div>
            <input id="bomCheckboxes" class="menu-textbox" type=text
                   oninput="setBomCheckboxes(this.value)">
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Mark when checked</div>
            <div id="markWhenCheckedContainer"></div>
          </label>
          <label class="menu-label">
            <span class="shameless-plug">
              <span>Created using</span>
              <a id="github-link" target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
              <a target="blank" title="Mouse and keyboard help" href="https://github.com/openscopeproject/InteractiveHtmlBom/wiki/Usage#bom-page-mouse-actions" style="text-decoration: none;"><label class="help-link">?</label></a>
            </span>
          </label>
        </div>
      </div>
      <div class="button-container hideonprint"
           style="float: right; position: relative; top: 8px">
        <button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
                title="Front only">F
        </button>
        <button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
                title="Front and Back">FB
        </button>
        <button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
                title="Back only">B
        </button>
      </div>
      <div class="button-container hideonprint"
           style="float: right; position: relative; top: 8px">
        <button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
                title="BOM only"></button>
        <button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
                title="BOM left, drawings right"></button>
        <button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
                title="BOM top, drawings bot"></button>
      </div>
      <div class="button-container hideonprint"
           style="float: right; position: relative; top: 8px">
        <button id="bom-grouped-btn" class="left-most-button" onclick="changeBomMode('grouped')"
                title="Grouped BOM"></button>
        <button id="bom-ungrouped-btn" class="middle-button" onclick="changeBomMode('ungrouped')"
                title="Ungrouped BOM"></button>
        <button id="bom-netlist-btn" class="right-most-button" onclick="changeBomMode('netlist')"
                title="Netlist"></button>
      </div>
      <div class="hideonprint menu" style="float: right; top: 8px;">
        <button class="statsbtn"></button>
        <div class="menu-content">
          <table class="stats">
            <tbody>
              <tr>
                <td width="40%">Board stats</td>
                <td>Front</td>
                <td>Back</td>
                <td>Total</td>
              </tr>
              <tr>
                <td>Components</td>
                <td id="stats-components-front">~</td>
                <td id="stats-components-back">~</td>
                <td id="stats-components-total">~</td>
              </tr>
              <tr>
                <td>Groups</td>
                <td id="stats-groups-front">~</td>
                <td id="stats-groups-back">~</td>
                <td id="stats-groups-total">~</td>
              </tr>
              <tr>
                <td>SMD pads</td>
                <td id="stats-smd-pads-front">~</td>
                <td id="stats-smd-pads-back">~</td>
                <td id="stats-smd-pads-total">~</td>
              </tr>
              <tr>
                <td>TH pads</td>
                <td colspan=3 id="stats-th-pads">~</td>
              </tr>
            </tbody>
          </table>
          <table class="stats">
            <col width="40%"/><col />
            <tbody id="checkbox-stats">
              <tr>
                <td colspan=2 style="border-top: 0">Checkboxes</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="hideonprint menu" style="float: right; top: 8px;">
        <button class="iobtn"></button>
        <div class="menu-content">
          <div class="menu-label menu-label-top">
            <div style="margin-left: 5px;">Save board image</div>
            <div class="flexbox">
              <input id="render-save-width" class="menu-textbox" type="text" value="1000" placeholder="Width"
                  style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
              <span>X</span>
              <input id="render-save-height" class="menu-textbox" type="text" value="1000" placeholder="Height"
                  style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
            </div>
            <label>
              <input id="render-save-transparent" type="checkbox">
              Transparent background
            </label>
            <div class="flexbox">
              <button class="savebtn" onclick="saveImage('F')">Front</button>
              <button class="savebtn" onclick="saveImage('B')">Back</button>
            </div>
          </div>
          <div class="menu-label">
            <span style="margin-left: 5px;">Config and checkbox state</span>
            <div class="flexbox">
              <button class="savebtn" onclick="saveSettings()">Export</button>
              <button class="savebtn" onclick="loadSettings()">Import</button>
              <button class="savebtn" onclick="resetSettings()">Reset</button>
            </div>
          </div>
          <div class="menu-label">
            <span style="margin-left: 5px;">Save bom table as</span>
            <div class="flexbox">
              <button class="savebtn" onclick="saveBomTable('csv')">csv</button>
              <button class="savebtn" onclick="saveBomTable('txt')">txt</button>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div id="fileinfodiv" style="overflow: auto;">
      <table class="fileinfo">
        <tbody>
          <tr>
            <td id="title" class="title" style="width: 70%">
              Title
            </td>
            <td id="revision" class="title" style="width: 30%">
              Revision
            </td>
          </tr>
          <tr>
            <td id="company">
              Company
            </td>
            <td id="filedate">
              Date
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
  <div id="bot" class="split" style="height: calc(100% - 80px)">
    <div id="bomdiv" class="split split-horizontal">
      <div style="width: 100%">
        <input id="reflookup" class="textbox searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
               oninput="updateRefLookup(this.value)">
        <input id="filter" class="textbox searchbox filter hideonprint" type="text" placeholder="Filter"
               oninput="updateFilter(this.value)">
        <div class="button-container hideonprint" style="float: left; margin: 0;">
          <button id="copy" title="Copy bom table to clipboard"
               onclick="saveBomTable('clipboard')"></button>
        </div>
      </div>
      <div id="dbg"></div>
      <table class="bom" id="bomtable">
        <thead id="bomhead">
        </thead>
        <tbody id="bombody">
        </tbody>
      </table>
    </div>
    <div id="canvasdiv" class="split split-horizontal">
      <div id="frontcanvas" class="split" touch-action="none" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="F_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
          <canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
        </div>
      </div>
      <div id="backcanvas" class="split" touch-action="none" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="B_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
          <canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
        </div>
      </div>
    </div>
  </div>
</div>

</body>

</html>
